output_description: Print n+1 lines. The k-th line should contain the number of the different
  subsequences of the given sequence with length k, modulo 10^9+7.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      n
      a_1 a_2 ... a_{n+1}
attempt: # 繰り返し二乗法 (mod 有り)
  def mod_rep_pow(a, n, mod=(10 ** 9 + 7)):
      res = 1
      while n > 0:
          if n % 2 == 0:
              a = a ** 2 % mod
              n //= 2
          else:
              res = res * a % mod
              n -= 1
      return (res % mod)
  
  
  # 繰り返し二乗法 (mod 有り) を利用して nCk を高速に返す
  # mod が素数のときのみ利用可能 (フェルマーの小定理を利用しているため)
  def mod_comb(n, k, mod=(10 ** 9 + 7)):
      res1 = 1
      for i in range(n, (n - k), -1):
          res1 *= i
          res1 %= mod
      res2 = 1
      for i in range(1, (k + 1)):
          res2 *= i
          res2 %= mod
      return ((res1 * mod_rep_pow(res2, (mod - 2), mod)) % mod)
  
  
  n = int(input().strip())
  a = list(map(int, input().split()))
  not_unique = sum(a) - sum([i for i in range(1, n + 1)])
  b = []
  for i in range(n + 1):
      if a[i] == not_unique:
          b.append(i)
  x = n - (b[1] - b[0])
  
  for i in range(1, n + 2):
      print(mod_comb(n + 1, i)  # - mod_comb(x, (i - 1)))
  
problem_description: Statement
  
  You are given an integer sequence of length n+1, a_1,a_2,...,a_{n+1}, which
  consists of the n integers 1,...,n. It is known that each of the n integers
  1,...,n appears at least once in this sequence.
  
  For each integer k=1,...,n+1, find the number of the different subsequences
  (not necessarily contiguous) of the given sequence with length k, modulo
  10^9+7.
samples: [{"input": "3\n    1 2 1 3", "output": "3\n    5\n    4\n    1\n    \n\nThere are three subsequences with length 1: 1 and 2 and 3.\n\nThere are five subsequences with length 2: 1,1 and 1,2 and 1,3 and 2,1 and\n2,3.\n\nThere are four subsequences with length 3: 1,1,3 and 1,2,1 and 1,2,3 and\n2,1,3.\n\nThere is one subsequence with length 4: 1,2,1,3.\n\n* * *"}, {"input": "1\n    1 1", "output": "1\n    1\n    \n\nThere is one subsequence with length 1: 1.\n\nThere is one subsequence with length 2: 1,1.\n\n* * *"}, {"input": "32\n    29 19 7 10 26 32 27 4 11 20 2 8 16 23 5 14 6 12 17 22 18 30 28 24 15 1 25 3 13 21 19 31 9", "output": "32\n    525\n    5453\n    40919\n    237336\n    1107568\n    4272048\n    13884156\n    38567100\n    92561040\n    193536720\n    354817320\n    573166440\n    818809200\n    37158313\n    166803103\n    166803103\n    37158313\n    818809200\n    573166440\n    354817320\n    193536720\n    92561040\n    38567100\n    13884156\n    4272048\n    1107568\n    237336\n    40920\n    5456\n    528\n    33\n    1\n    \n\nBe sure to print the numbers modulo 10^9+7."}]