input: def sierpinski_triangle(n):
      """
      Generate and print the first n rows of the Sierpinski triangle.
      >>> sierpinski_triangle(1)
      1
      >>> sierpinski_triangle(2)
         1
        1 1
      >>> sierpinski_triangle(3)
           1
          1 1
         1 0 1
      """
output:     if n <= 0:
          return
  
      triangle = [[1]]
      for i in range(1, n):
          row = [1]
          for j in range(1, i):
              row.append(triangle[i-1][j-1] ^ triangle[i-1][j])
          row.append(1)
          triangle.append(row)
  
      max_width = len(' '.join(map(str, triangle[-1])))
      for row in triangle:
          print(' '.join(map(str, row)).center(max_width))