#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef pair P; typedef pair P1; typedef pair P2; #define pu push #define pb push_back #define mp make_pair #define eps 1e-7 #define INF 1000 #define mod 1000000007 #define fi first #define sc second #define rep(i,x) for(int i=0;i0) { if(n&1) res=res*x%mod; x=x*x%mod; n>>=1; } return res; } ll F[200005],R[200005]; void make(){ F[0] = 1; for(int i=1;i<200005;i++) F[i] = F[i-1]*i%mod; for(int i=0;i<200005;i++) R[i] = modpow(F[i],mod-2); } ll C(int a,int b){ return F[a]*R[b]%mod*R[a-b]%mod; } int ML[2005][2005]; int cnt[2005][2005]; ll FF[2005][2005]; ll ans[2005]; string S; int main(){ cin >> n; for(int i=0;i> str[i]; S += str[i]; S += "*"; } construct_sa(S); construct_lcp(S); vector

RR;int cur = 0; for(int i=0;i=2;x--){ L += cnt[i][x]; ans[k] -= FF[k][L]; //if(k==3) cout << ans[k] << endl; } } } for(int k=1;k<=n;k++){ cout << (ans[k]%mod+mod)%mod << endl; } }