/*
POJ 1671 Rhyme Schemes
result:AC
time: 0MS
*/
#include"iostream"
using namespace std;
double f[55][55];
int main()
{
int n;
while(cin>>n,n)
{
int i,j;
double ans=0;
for(i=1;i<=n;i++){
f[i][1]=1;
for(j=1;j<i;j++)
f[i][j]=f[i-1][j-1]+j*f[i-1][j];//求第二类stirling数
f[i][i]=1;
}
for(j=1;j<=i;j++)
ans+=f[n][j];//求bell数
printf("%d %.0lf\n",n,ans);
}
return 0;
}