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: #include <bits/stdc++.h>
  #include <boost/range/irange.hpp>
  
  using namespace std;
  using namespace boost;
  
  struct Mod {
      static constexpr auto kMod = 1000000007L;
   
      // can be implicitly converted
      Mod(int64_t n) : n(n) {}
   
      Mod operator*(Mod m) const { return (n * (m.n % kMod)) % kMod; }
   
      Mod& operator*=(Mod m) {
          *this = *this * m;
          return *this;
      }
   
      Mod pow(int64_t p) {
          if (p == 0) {
              return 1;
          }
          if (p == 1) {
              return n;
          }
   
          int64_t r = this->pow(p / 2).n;
          if (p % 2 == 0) {
              return r * r % kMod;
          } else {
              return (r * r % kMod) * n % kMod;
          }
      }
   
      Mod operator/(Mod m) const {
          if (n == 0) {
              return 0;
          }
   
          return *this * m.pow(kMod - 2);
      }
   
      Mod& operator/=(Mod m) {
          *this = *this / m;
          return *this;
      }
   
      Mod operator+(Mod m) const { return (n + m.n) % kMod; }
   
      Mod& operator+=(Mod m) {
          *this = *this + m;
          return *this;
      }
   
      Mod operator-(Mod m) const { return (kMod + n - m.n) % kMod; }
   
      Mod& operator-=(Mod m) {
          *this = *this - m;
          return *this;
      }
   
      int64_t n;
  };
  
  Mod combi(int64_t a, int64_t b) {
    Mod c(1);
    
    for (auto i : irange(0L, b)) {
      c *= a - i;
      c /= i + 1;
    }
    
    return c;
  }
  
  main() {
    int64_t n;
    cin >> n;
    unordered_map<int64_t, int64_t> a;
    int64_t dist = -1;
    for (auto i : irange(0L, n + 1)) {
      int64_t aa;
      cin >> aa;
      if (a.count(aa) > 0) {
        dist = i - a[aa];
      }
      a[aa] = i;
    }
    
    Mod c = 1; // C(n + 1, 0)
    Mod d = 1; // C(n - dist, 0)
    for (auto k : irange(1L, n + 2)) {
      // C(n + 1, k) = C(n + 1, k - 1) * (n - k + 2) / k
      c *= n - k + 2;
      c /= k;
      // C(n - dist, k - 1) = C(n - dist, k - 2) * (n - dist - k + 2) / (k - 1)
      if (k >= 2) {
          d *= n - dist - k + 2;
          d /= k - 1;
      }
      if (k - 1 <= n - dist) {
        cout << (c - d).n << endl;
      } else {
        cout << c.n << endl;
      }
    }
  }
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."}]