input: def sierpinski_triangle(n: int):
      """
      Generate the first n elements of the Sierpinski triangle. The function prints out a sequence of 1's and 0's
      that represent the triangle up to the desired depth n. 
  
      Example:
      >>> sierpinski_triangle(1)
      1 
      >>> sierpinski_triangle(2)
      1 1 
      0 1 0 
      >>> sierpinski_triangle(3)
      1 1 1 1 
      0 1 0 1 0 
      0 0 1 1 0 0 
      0 0 0 1 0 0 0 
      """
output:     if n <= 0:
          return
  
      def next_row(row):
          return [row[i] ^ row[i + 1] for i in range(len(row) - 1)] + [1]
  
      current_row = [1]
      for _ in range(n):
          print(' '.join(map(str, current_row)))
          current_row = next_row(current_row)