///1005 简单字符串处理
#include<bits/stdc++.h>
using namespace std;
vector<string>q;
map<int,string>num;
int main()
{
num[0]="zero";
num[1]="one";
num[2]="two";
num[3]="three";
num[4]="four";
num[5]="five";
num[6]="six";
num[7]="seven";
num[8]="eight";
num[9]="nine";
string s;
while(cin>>s)
{
q.clear();
int len=s.length();
int ans=0;
for(int i=0;i<len;i++)ans+=(s[i]-'0');
if(ans==0){cout<<"zero"<<endl;continue;}
while(ans)
{
int t=ans%10;
ans/=10;
q.push_back(num[t]);
}
vector<string>::iterator itea=q.end();
itea--;
cout<<*itea;
itea--;
for(;itea>=q.begin();itea--)cout<<' '<<*itea;
cout<<endl;
}
return 0;
}
///1006 简单排序
#include<bits/stdc++.h>
using namespace std;
const int maxn =10010;
typedef struct Person{
string name;
int intime;
int outtime;
};
int cmp1(const Person &a,const Person &b){
if(a.intime==b.intime) return a.name<b.name;
else return a.intime<b.intime;
}
int cmp2(const Person &a,const Person &b){
if(a.outtime==b.outtime) return a.name<b.name;
else return a.outtime>b.outtime;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
Person person[maxn];
for(int i=0;i<n;i++){
string s;
cin>>s;
person[i].name=s;
int t1,t2,t3;
scanf("%d:%d:%d",&t1,&t2,&t3);
person[i].intime=t1*3600+t2*60+t3;
scanf("%d:%d:%d",&t1,&t2,&t3);
person[i].outtime=t1*3600+t2*60+t3;
}
sort(person,person+n,cmp1);
cout<<person[0].name<<' ';
sort(person,person+n,cmp2);
cout<<person[0].name<<endl;
}
return 0;
}