#include <iostream>
#include <stdlib.h>
using namespace std;
bool test=false;
void trojkat(string pom)
{
switch(pom[0])
{
case '1':
cout<<"sto ";
break;
case '2':
cout<<"dwiescie ";
break;
case '3':
cout<<"trzysta ";
break;
case '4':
cout<<"czterysta ";
break;
case '5':
cout<<"piecset ";
break;
case '6':
cout<<"szescset ";
break;
case '7':
cout<<"siedemset ";
break;
case '8':
cout<<"osiemset ";
break;
case'9':
cout<<"dziewiecset ";
break;
}
//-----------------------------------------------
switch(pom[1])
{
case '1': // jedenascie itd...
test=true;
if(pom[2]=='0')
{
cout<<"dziesiec";
}
if(pom[2]=='1')
{
cout<<"jedenascie";
}
else if(pom[2]=='2')
{
cout<<"dwanascie";
}
else if(pom[2]=='3')
{
cout<<"trzynascie";
}
else if(pom[2]=='4')
{
cout<<"czternascie";
}
else if(pom[2]=='5')
{
cout<<"pietnascie";
}
else if(pom[2]=='6')
{
cout<<"szesnascie";
}
else if(pom[2]=='7')
{
cout<<"siedemnascie";
}
else if(pom[2]=='8')
{
cout<<"osiemnascie";
}
else if(pom[2]=='9')
{
cout<<"dziewietnascie";
}
break;
case '2':
cout<<"dwadziescia ";
break;
case '3':
cout<<"trzydziesci ";
break;
case '4':
cout<<"czterdziesci ";
break;
case '5':
cout<<"piecdziesiat ";
break;
case '6':
cout<<"szescdziesiat ";
break;
case '7':
cout<<"siedemdziesiat ";
break;
case '8':
cout<<"osiemdziesiat ";
break;
case '9':
cout<<"dziewiedziesiat ";
break;
}
//--------------------
if(test==false)
{
switch(pom[2])
{
case '1':
cout<<"jeden";
break;
case '2':
cout<<"dwa";
break;
case '3':
cout<<"trzy";
break;
case '4':
cout<<"cztery";
break;
case '5':
cout<<"piec";
break;
case '6':
cout<<"szesc";
break;
case '7':
cout<<"siedem";
break;
case '8':
cout<<"osiem";
break;
case '9':
cout<<"dziewiec";
break;
}
}
else
{
test=false;
}
}
int main()
{
int t;
cin>>t;
while(t--)
{
string liczba;
cin>>liczba;
int r=liczba.size();
int licz=atoi(liczba.c_str());
if(r<=3)
{
string pom="000";
pom[2]=liczba[r-1];
pom[1]=liczba[r-2];
pom[0]=liczba[r-3];
trojkat(pom);
}
else if(r>3 && r<=6)
{
string tys="000";
tys[2]=liczba[r-4];
tys[1]=liczba[r-5];
tys[0]=liczba[r-6];
trojkat(tys);
cout<<" tys. ";
string how="how";
how[2]=liczba[r-1];
how[1]=liczba[r-2];
how[0]=liczba[r-3];
trojkat(how);
}
else if(r>6 && r<=9)
{
string mln="000";
mln[2]=liczba[r-7];
mln[1]=liczba[r-8];
mln[0]=liczba[r-9];
trojkat(mln);
cout<<" mln. ";
string tys="000";
tys[2]=liczba[r-4];
tys[1]=liczba[r-5];
tys[0]=liczba[r-6];
trojkat(tys);
if(tys!="000")
cout<<" tys. ";
string how="how";
how[2]=liczba[r-1];
how[1]=liczba[r-2];
how[0]=liczba[r-3];
trojkat(how);
}
else if(r > 9 && r<=12)
{
string mld="000";
mld[2]=liczba[r-10];
mld[1]=liczba[r-11];
mld[0]=liczba[r-12];
trojkat(mld);
cout<<" mld. ";
string mln="000";
mln[2]=liczba[r-7];
mln[1]=liczba[r-8];
mln[0]=liczba[r-9];
trojkat(mln);
if(mln!="000")
cout<<" mln. ";
string tys="000";
tys[2]=liczba[r-4];
tys[1]=liczba[r-5];
tys[0]=liczba[r-6];
trojkat(tys);
if(tys!="000")
cout<<" tys. ";
string how="how";
how[2]=liczba[r-1];
how[1]=liczba[r-2];
how[0]=liczba[r-3];
trojkat(how);
}
else if(r > 12 && r<=15)
{
string bil="000";
bil[2]=liczba[r-13];
bil[1]=liczba[r-14];
bil[0]=liczba[r-15];
trojkat(bil);
cout<<" bil. ";
string mld="000";
mld[2]=liczba[r-10];
mld[1]=liczba[r-11];
mld[0]=liczba[r-12];
trojkat(mld);
if(mld!="000")
cout<<" mld. ";
string mln="000";
mln[2]=liczba[r-7];
mln[1]=liczba[r-8];
mln[0]=liczba[r-9];
trojkat(mln);
if(mln!="000")
cout<<" mln. ";
string tys="000";
tys[2]=liczba[r-4];
tys[1]=liczba[r-5];
tys[0]=liczba[r-6];
trojkat(tys);
if(tys!="000")
cout<<" tys. ";
string how="how";
how[2]=liczba[r-1];
how[1]=liczba[r-2];
how[0]=liczba[r-3];
trojkat(how);
}
cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkbGliLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCB0ZXN0PWZhbHNlOwogICAgdm9pZCB0cm9qa2F0KHN0cmluZyBwb20pCiAgICB7CgoKICAgICAgICBzd2l0Y2gocG9tWzBdKQogICAgICAgIHsKCiAgICAgICAgICAgIGNhc2UgJzEnOgogICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJzdG8gIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJzInOgoKICAgICAgICAgICAgICAgICAgICBjb3V0PDwiZHdpZXNjaWUgIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJzMnOgoKICAgICAgICAgICAgICAgICAgICBjb3V0PDwidHJ6eXN0YSAiOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICc0JzoKCiAgICAgICAgICAgICAgICAgICAgY291dDw8ImN6dGVyeXN0YSAiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnNSc6CgogICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJwaWVjc2V0ICI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICc2JzoKCiAgICAgICAgICAgICAgICAgICAgY291dDw8InN6ZXNjc2V0ICI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICc3JzoKCiAgICAgICAgICAgICAgICAgICAgY291dDw8InNpZWRlbXNldCAiOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnOCc6CgogICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJvc2llbXNldCAiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSc5JzoKCiAgICAgICAgICAgICAgICAgICAgY291dDw8ImR6aWV3aWVjc2V0ICI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIH0KCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgogICAgICAgICAgICAgICBzd2l0Y2gocG9tWzFdKQogICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJzEnOiAvLyBqZWRlbmFzY2llIGl0ZC4uLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Q9dHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHBvbVsyXT09JzAnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJkemllc2llYyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihwb21bMl09PScxJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwiamVkZW5hc2NpZSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHBvbVsyXT09JzInKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJkd2FuYXNjaWUiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihwb21bMl09PSczJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwidHJ6eW5hc2NpZSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHBvbVsyXT09JzQnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJjenRlcm5hc2NpZSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHBvbVsyXT09JzUnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJwaWV0bmFzY2llIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYocG9tWzJdPT0nNicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8InN6ZXNuYXNjaWUiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihwb21bMl09PSc3JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwic2llZGVtbmFzY2llIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYocG9tWzJdPT0nOCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8Im9zaWVtbmFzY2llIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYocG9tWzJdPT0nOScpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8ImR6aWV3aWV0bmFzY2llIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKCgogICAgICAgICAgICAgICAgICAgY2FzZSAnMic6CgogICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwiZHdhZHppZXNjaWEgIjsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgoKICAgICAgICAgICAgICAgICAgIGNhc2UgJzMnOgoKICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8InRyenlkemllc2NpICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgIGNhc2UgJzQnOgoKICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8ImN6dGVyZHppZXNjaSAiOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCgogICAgICAgICAgICAgICAgICAgIGNhc2UgJzUnOgoKICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8InBpZWNkemllc2lhdCAiOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCgogICAgICAgICAgICAgICAgICAgIGNhc2UgJzYnOgoKICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8InN6ZXNjZHppZXNpYXQgIjsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgoKICAgICAgICAgICAgICAgICAgICBjYXNlICc3JzoKCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJzaWVkZW1kemllc2lhdCAiOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCgogICAgICAgICAgICAgICAgICAgIGNhc2UgJzgnOgoKICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8Im9zaWVtZHppZXNpYXQgIjsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgoKICAgICAgICAgICAgICAgICAgICBjYXNlICc5JzoKCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJkemlld2llZHppZXNpYXQgIjsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgoKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgICAgICAgICAgIGlmKHRlc3Q9PWZhbHNlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHBvbVsyXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMSc6CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJqZWRlbiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMic6CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJkd2EiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzMnOgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwidHJ6eSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnNCc6CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJjenRlcnkiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzUnOgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwicGllYyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnNic6CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJzemVzYyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnNyc6CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJzaWVkZW0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzgnOgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwib3NpZW0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzknOgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwiZHppZXdpZWMiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGVzdD1mYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CgoKCgogICAgfQoKCgoKaW50IG1haW4oKQp7CiAgICBpbnQgdDsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKCiAgICAgICAgICAgICAgICBzdHJpbmcgbGljemJhOwogICAgICAgICAgICAgICAgY2luPj5saWN6YmE7CgogICAgICAgICAgICAgICAgaW50IHI9bGljemJhLnNpemUoKTsKICAgICAgICAgICAgICAgIGludCBsaWN6PWF0b2kobGljemJhLmNfc3RyKCkpOwoKICAgICAgICAgICAgICAgIGlmKHI8PTMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHBvbT0iMDAwIjsKICAgICAgICAgICAgICAgICAgICBwb21bMl09bGljemJhW3ItMV07CiAgICAgICAgICAgICAgICAgICAgcG9tWzFdPWxpY3piYVtyLTJdOwogICAgICAgICAgICAgICAgICAgIHBvbVswXT1saWN6YmFbci0zXTsKCiAgICAgICAgICAgICAgICAgICAgdHJvamthdChwb20pOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGVsc2UgaWYocj4zICYmIHI8PTYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHR5cz0iMDAwIjsKICAgICAgICAgICAgICAgICAgICB0eXNbMl09bGljemJhW3ItNF07CiAgICAgICAgICAgICAgICAgICAgdHlzWzFdPWxpY3piYVtyLTVdOwogICAgICAgICAgICAgICAgICAgIHR5c1swXT1saWN6YmFbci02XTsKCiAgICAgICAgICAgICAgICAgICAgdHJvamthdCh0eXMpOwoKCiAgICAgICAgICAgICAgICAgICAgY291dDw8IiB0eXMuICI7CgogICAgICAgICAgICAgICAgICAgIHN0cmluZyBob3c9ImhvdyI7CiAgICAgICAgICAgICAgICAgICAgaG93WzJdPWxpY3piYVtyLTFdOwogICAgICAgICAgICAgICAgICAgIGhvd1sxXT1saWN6YmFbci0yXTsKICAgICAgICAgICAgICAgICAgICBob3dbMF09bGljemJhW3ItM107CiAgICAgICAgICAgICAgICAgICAgdHJvamthdChob3cpOwoKICAgICAgICAgICAgICAgIH0KCgogICAgICAgICAgICAgICAgIGVsc2UgaWYocj42ICYmIHI8PTkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIG1sbj0iMDAwIjsKICAgICAgICAgICAgICAgICAgICBtbG5bMl09bGljemJhW3ItN107CiAgICAgICAgICAgICAgICAgICAgbWxuWzFdPWxpY3piYVtyLThdOwogICAgICAgICAgICAgICAgICAgIG1sblswXT1saWN6YmFbci05XTsKCiAgICAgICAgICAgICAgICAgICAgdHJvamthdChtbG4pOwoKICAgICAgICAgICAgICAgICAgICBjb3V0PDwiIG1sbi4gIjsKCgogICAgICAgICAgICAgICAgICAgIHN0cmluZyB0eXM9IjAwMCI7CiAgICAgICAgICAgICAgICAgICAgdHlzWzJdPWxpY3piYVtyLTRdOwogICAgICAgICAgICAgICAgICAgIHR5c1sxXT1saWN6YmFbci01XTsKICAgICAgICAgICAgICAgICAgICB0eXNbMF09bGljemJhW3ItNl07CgoKICAgICAgICAgICAgICAgICAgICB0cm9qa2F0KHR5cyk7CgogICAgICAgICAgICAgICAgICAgIGlmKHR5cyE9IjAwMCIpCiAgICAgICAgICAgICAgICAgICAgY291dDw8IiB0eXMuICI7CgogICAgICAgICAgICAgICAgICAgIHN0cmluZyBob3c9ImhvdyI7CiAgICAgICAgICAgICAgICAgICAgaG93WzJdPWxpY3piYVtyLTFdOwogICAgICAgICAgICAgICAgICAgIGhvd1sxXT1saWN6YmFbci0yXTsKICAgICAgICAgICAgICAgICAgICBob3dbMF09bGljemJhW3ItM107CiAgICAgICAgICAgICAgICAgICAgdHJvamthdChob3cpOwoKICAgICAgICAgICAgICAgIH0KCgogICAgICAgICAgICAgICAgICBlbHNlIGlmKHIgPiA5ICAmJiByPD0xMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzdHJpbmcgbWxkPSIwMDAiOwogICAgICAgICAgICAgICAgICAgIG1sZFsyXT1saWN6YmFbci0xMF07CiAgICAgICAgICAgICAgICAgICAgbWxkWzFdPWxpY3piYVtyLTExXTsKICAgICAgICAgICAgICAgICAgICBtbGRbMF09bGljemJhW3ItMTJdOwoKICAgICAgICAgICAgICAgICAgICB0cm9qa2F0KG1sZCk7CgogICAgICAgICAgICAgICAgICAgIGNvdXQ8PCIgbWxkLiAiOwoKCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIG1sbj0iMDAwIjsKICAgICAgICAgICAgICAgICAgICBtbG5bMl09bGljemJhW3ItN107CiAgICAgICAgICAgICAgICAgICAgbWxuWzFdPWxpY3piYVtyLThdOwogICAgICAgICAgICAgICAgICAgIG1sblswXT1saWN6YmFbci05XTsKCiAgICAgICAgICAgICAgICAgICAgdHJvamthdChtbG4pOwoKCiAgICAgICAgICAgICAgICAgICAgaWYobWxuIT0iMDAwIikKICAgICAgICAgICAgICAgICAgICBjb3V0PDwiIG1sbi4gIjsKCgogICAgICAgICAgICAgICAgICAgIHN0cmluZyB0eXM9IjAwMCI7CiAgICAgICAgICAgICAgICAgICAgdHlzWzJdPWxpY3piYVtyLTRdOwogICAgICAgICAgICAgICAgICAgIHR5c1sxXT1saWN6YmFbci01XTsKICAgICAgICAgICAgICAgICAgICB0eXNbMF09bGljemJhW3ItNl07CgogICAgICAgICAgICAgICAgICAgIHRyb2prYXQodHlzKTsKCiAgICAgICAgICAgICAgICAgICAgaWYodHlzIT0iMDAwIikKICAgICAgICAgICAgICAgICAgICBjb3V0PDwiIHR5cy4gIjsKCgogICAgICAgICAgICAgICAgICAgIHN0cmluZyBob3c9ImhvdyI7CiAgICAgICAgICAgICAgICAgICAgaG93WzJdPWxpY3piYVtyLTFdOwogICAgICAgICAgICAgICAgICAgIGhvd1sxXT1saWN6YmFbci0yXTsKICAgICAgICAgICAgICAgICAgICBob3dbMF09bGljemJhW3ItM107CiAgICAgICAgICAgICAgICAgICAgdHJvamthdChob3cpOwoKICAgICAgICAgICAgICAgIH0KCgogICAgICAgICAgICAgICAgIGVsc2UgaWYociA+IDEyICAmJiByPD0xNSkKICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGJpbD0iMDAwIjsKICAgICAgICAgICAgICAgICAgICBiaWxbMl09bGljemJhW3ItMTNdOwogICAgICAgICAgICAgICAgICAgIGJpbFsxXT1saWN6YmFbci0xNF07CiAgICAgICAgICAgICAgICAgICAgYmlsWzBdPWxpY3piYVtyLTE1XTsKCiAgICAgICAgICAgICAgICAgICAgdHJvamthdChiaWwpOwoKICAgICAgICAgICAgICAgICAgICBjb3V0PDwiIGJpbC4gIjsKCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIG1sZD0iMDAwIjsKICAgICAgICAgICAgICAgICAgICBtbGRbMl09bGljemJhW3ItMTBdOwogICAgICAgICAgICAgICAgICAgIG1sZFsxXT1saWN6YmFbci0xMV07CiAgICAgICAgICAgICAgICAgICAgbWxkWzBdPWxpY3piYVtyLTEyXTsKCiAgICAgICAgICAgICAgICAgICAgdHJvamthdChtbGQpOwoKICAgICAgICAgICAgICAgICAgICBpZihtbGQhPSIwMDAiKQogICAgICAgICAgICAgICAgICAgIGNvdXQ8PCIgbWxkLiAiOwoKCgogICAgICAgICAgICAgICAgICAgIHN0cmluZyBtbG49IjAwMCI7CiAgICAgICAgICAgICAgICAgICAgbWxuWzJdPWxpY3piYVtyLTddOwogICAgICAgICAgICAgICAgICAgIG1sblsxXT1saWN6YmFbci04XTsKICAgICAgICAgICAgICAgICAgICBtbG5bMF09bGljemJhW3ItOV07CgogICAgICAgICAgICAgICAgICAgIHRyb2prYXQobWxuKTsKCiAgICAgICAgICAgICAgICAgICAgaWYobWxuIT0iMDAwIikKICAgICAgICAgICAgICAgICAgICBjb3V0PDwiIG1sbi4gIjsKCgogICAgICAgICAgICAgICAgICAgIHN0cmluZyB0eXM9IjAwMCI7CiAgICAgICAgICAgICAgICAgICAgdHlzWzJdPWxpY3piYVtyLTRdOwogICAgICAgICAgICAgICAgICAgIHR5c1sxXT1saWN6YmFbci01XTsKICAgICAgICAgICAgICAgICAgICB0eXNbMF09bGljemJhW3ItNl07CgogICAgICAgICAgICAgICAgICAgIHRyb2prYXQodHlzKTsKCiAgICAgICAgICAgICAgICAgICAgaWYodHlzIT0iMDAwIikKICAgICAgICAgICAgICAgICAgICBjb3V0PDwiIHR5cy4gIjsKCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGhvdz0iaG93IjsKICAgICAgICAgICAgICAgICAgICBob3dbMl09bGljemJhW3ItMV07CiAgICAgICAgICAgICAgICAgICAgaG93WzFdPWxpY3piYVtyLTJdOwogICAgICAgICAgICAgICAgICAgIGhvd1swXT1saWN6YmFbci0zXTsKICAgICAgICAgICAgICAgICAgICB0cm9qa2F0KGhvdyk7CgogICAgICAgICAgICAgICAgfQoKCiAgICAgICAgY291dDw8ZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=