const int N=2222;
LL stirling2[N][N],bell[N];
LL mod=1000;
void get_stirling2(int m,int n){
int mi,i,j;
stirling2[0][0]=1;
for(i=1;i<=m;i++){
stirling2[i][0]=0;
}
for(i=0;i<=m;i++){
stirling2[i][i+1]=0;
}
for(i=1;i<=m;i++){
if(i<n)
mi=i;
else
mi=n;
for(j=1;j<=mi;j++){
stirling2[i][j]=(j*stirling2[i-1][j]+stirling2[i-1][j-1])%mod;
}
}
}
void get_bell(int m){
get_stirling2(m,m);
memset(bell,0,sizeof(bell));
int i,j;
for(i=1;i<=m;i++){
for(j=0;j<=i;j++){
bell[i]=(bell[i]+stirling2[i][j])%mod;
}
}
}