#include"iostream" //410ms
#include"stdio.h"
using namespace std;
typedef long long ll;
const ll INF=2000000000+10;
ll f[5843];
int prime[4]={7,5,3,2};
void m_list()
{
f[1]=1;f[2]=2;f[3]=3;f[4]=4;f[5]=5;
int i,j,k;
for(i=6;i<=5842;i++)
{
f[i]=INF;
for(j=i-1;j>=1;j--) //逆序枚举从大到小逼近,相乘大于a[i-1]取最小的数
{
for(k=0;k<4;k++)
{
if(f[j]*prime[k]<=f[i-1]) break;
f[i]=min(f[i],f[j]*prime[k]);
}
}
}
}
int main()
{
m_list();
int n;
while(cin>>n,n)
{
putchar('T');putchar('h');putchar('e');putchar(' ');
printf("%d",n);
if(n%10==1&&n%100!=11){putchar('s');putchar('t');}
else if(n%10==2&&n%100!=12){putchar('n');putchar('d');}
else if(n%10==3&&n%100!=13){putchar('r');putchar('d');}
else {putchar('t');putchar('h');}
putchar(' ');putchar('h');putchar('u');putchar('m');putchar('b');
putchar('l');putchar('e');putchar(' ');
putchar('n');putchar('u');putchar('m');
putchar('b');putchar('e');putchar('r');putchar(' ');putchar('i');
putchar('s');putchar(' ');
printf("%lld",f[n]);
putchar('.');putchar('\n');
}
return 0;
}
#include"iostream" //140ms
#include"stdio.h"
using namespace std;
typedef long long ll;
const ll INF=2000000000+10;
ll f[5843];
int prime[4]={2,3,5,7};
void m_list()
{
f[1]=1;f[2]=2;f[3]=3;f[4]=4;f[5]=5;
int i,j,k;
for(i=6;i<=5842;i++)
{
f[i]=INF;
for(j=0;j<4;j++)
for(k=i-1;k>=1;k--)
{
if(f[k]*prime[j]<=f[i-1]) break;
if(f[k]*prime[j]<f[i]) f[i]=f[k]*prime[j];
}
}
}
int main()
{
m_list();
int n;
while(scanf("%d",&n)&&n)
{
printf("The %d",n);
if(n%10==1&&n%100!=11)printf("st");
else if(n%10==2&&n%100!=12)printf("nd");
else if(n%10==3&&n%100!=13) printf("rd");
else printf("th");
printf(" humble number is %lld.\n",f[n]);
}
return 0;
}