#include #include using namespace std; #define MAXN 150 #define MOD 20090829 __int64 dp[MAXN][MAXN],c[MAXN][MAXN]; __int64 a[MAXN]; __int64 b[MAXN]; int gcd(int x,int y) { if (y==0) return x; else return gcd(y,x%y); } __int64 C(int k,int n) { int i,j; if (c[k][n]!=0) return c[k][n]; __int64 temp,ans; for(i=n-k+1;i<=n;i++) a[i]=i; for(i=1;i<=k;i++) b[i]=i; for(i=1;i<=k;i++) for(j=n-k+1;j<=n;j++) { temp=gcd(b[i],a[j]); b[i]/=temp; a[j]/=temp; } ans=1; for(i=n-k+1;i<=n;i++) ans=ans*a[i]%MOD; c[k][n]=ans; return ans; } int min(int x,int y) { if (x