#include <iostream>
#include <string>
#include <stdlib.h>
#include <sstream>
#include <cstdio>
#include <algorithm>
#include <functional>
#include <cctype>
#include <locale>
using namespace std;
int main( )
{
string s,n= "001" ,m= "0" ;
char p[ 10000 ] ;
int i= 0 ,a,b,c,d,re= 0 ,g= 0 ;
while ( getline( cin ,s) )
{
if ( s== "" )
{
cout << endl;
}
else
{
for ( std:: string :: reverse_iterator rit= s.rbegin ( ) ; rit! = s.rend ( ) ; ++ rit)
{
p[ i] = * rit;
i++ ;
}
for ( int j= 0 ; j< s.length ( ) ; j++ )
{
if ( ( p[ j] > 64 && p[ j] < 91 ) || ( p[ j] > 96 && p[ j] < 123 ) || p[ j] == 32 || p[ j] == 33 || p[ j] == 44 || p[ j] == 46 || p[ j] == 58 || p[ j] == 59 || p[ j] == 63 )
{
a= p[ j] ;
for ( ; a! = 0 ; )
{
re = re * 10 ;
re = re + a% 10 ;
a = a/ 10 ;
}
if ( re< 10 )
{
if ( re== 1 )
cout << n;
else
cout << m<< re;
re= 0 ;
}
else
cout << re;
re= 0 ;
}
else
{
b= p[ j] - '0' ;
b= b* 10 ;
c= p[ j+ 1 ] - '0' ;
b= b+ c;
j++ ;
if ( ( b> 64 && b< 91 ) || ( b> 96 && b< 100 ) )
{
cout << ( char ) b;
}
else if ( b== 32 || b== 33 || b== 44 || b== 46 || b== 58 || b== 59 || b== 63 )
{
if ( b== 32 )
{
cout << ( char ) b;
}
else if ( b== 33 )
cout << ( char ) b;
else if ( b== 44 )
cout << ( char ) b;
else if ( b== 46 )
cout << ( char ) b;
else if ( b== 58 )
cout << ( char ) b;
else if ( b== 59 )
cout << ( char ) b;
else if ( b== 63 )
cout << ( char ) b;
}
else
{
b= b* 10 ;
d= p[ j+ 1 ] - '0' ;
j++ ;
b= b+ d;
cout << ( char ) b;
}
}
}
cout << endl;
i= 0 ;
}
}
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPGNjdHlwZT4KI2luY2x1ZGUgPGxvY2FsZT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKc3RyaW5nIHMsbj0iMDAxIixtPSIwIjsKY2hhciBwWzEwMDAwXTsKaW50IGk9MCxhLGIsYyxkLHJlPTAsZz0wOwp3aGlsZShnZXRsaW5lKGNpbixzKSkKewogICAgaWYocz09IiIpCiAgICB7CiAgICAgICAgY291dDw8ZW5kbDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgIGZvciAoc3RkOjpzdHJpbmc6OnJldmVyc2VfaXRlcmF0b3Igcml0PXMucmJlZ2luKCk7IHJpdCE9cy5yZW5kKCk7ICsrcml0KQogICAgewogICAgICAgIHBbaV09KnJpdDsKICAgICAgICBpKys7CiAgICB9CiAgICBmb3IoaW50IGo9MDtqPHMubGVuZ3RoKCk7aisrKQogICAgewogICAgICAgIGlmKChwW2pdPjY0ICYmIHBbal08OTEpIHx8IChwW2pdPjk2ICYmIHBbal08MTIzKSB8fCBwW2pdPT0zMiB8fCBwW2pdPT0zMyB8fCBwW2pdPT00NHx8IHBbal09PTQ2fHwgcFtqXT09NTggfHwgcFtqXT09NTkgfHwgcFtqXT09NjMgKQogICAgICAgIHsKICAgICAgICAgICAgYT1wW2pdOwogICAgICAgICAgICBmb3IoIDsgYSE9IDAgOyApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJlID0gcmUgKiAxMDsKICAgICAgICAgICAgICAgIHJlID0gcmUgKyBhJTEwOwogICAgICAgICAgICAgICAgYSA9IGEvMTA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYocmU8MTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHJlPT0xKQogICAgICAgICAgICAgICAgICAgIGNvdXQ8PG47CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgY291dDw8bTw8cmU7CiAgICAgICAgICAgICAgICByZT0wOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGNvdXQ8PHJlOwogICAgICAgICAgICByZT0wOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYj1wW2pdLScwJzsKICAgICAgICAgICAgICAgIGI9YioxMDsKICAgICAgICAgICAgICAgIGM9cFtqKzFdLScwJzsKICAgICAgICAgICAgICAgIGI9YitjOwogICAgICAgICAgICAgICAgaisrOwogICAgICAgICAgICAgICAgaWYoKGI+NjQgJiYgYjw5MSkgfHwgKGI+OTYgJiYgYjwxMDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNvdXQ8PChjaGFyKWI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmKGI9PTMyIHx8IGI9PTMzIHx8IGI9PTQ0fHwgYj09NDZ8fCBiPT01OCB8fCBiPT01OSB8fCBiPT02MykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZihiPT0zMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PChjaGFyKWI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoYj09MzMpCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PChjaGFyKWI7CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihiPT00NCkKICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8KGNoYXIpYjsKICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGI9PTQ2KQogICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwoY2hhciliOwogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoYj09NTgpCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PChjaGFyKWI7CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihiPT01OSkKICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8KGNoYXIpYjsKICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGI9PTYzKQogICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwoY2hhciliOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGI9YioxMDsKICAgICAgICAgICAgICAgICAgICBkPXBbaisxXS0nMCc7CiAgICAgICAgICAgICAgICAgICAgaisrOwogICAgICAgICAgICAgICAgICAgIGI9YitkOwogICAgICAgICAgICAgICAgY291dDw8KGNoYXIpYjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb3V0PDxlbmRsOwogICAgICAgIGk9MDsKICAgIH0KfQpyZXR1cm4gMDsKfQ==
stdin
enl4d3ZuUFFTVCBhYnJhY2FkYXJicmEKciE6WT8uIUZ4PztybTtQUwpPbmUgaXMgdG8gd3JpdGUgYW4gZW5jb2RlcmRlY29kZXIgcHJvZ3JhbSBoZXJlLgpUbyBCIG9yIG5vdCBUTyBiZSBpcyB0aGUgUVVFU1RJT04uCnRoZSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nIDpwClRyeSBhbGwgdGhlIHNpbGx5IGNhc2VzIHlvdSBjYW4gdGhpbmsgb2Y=
zyxwvnPQST abracadarbra
r!:Y?.!Fx?;rm;PS
One is to write an encoderdecoder program here.
To B or not TO be is the QUESTION.
the quick brown fox jumped over the lazy dog :p
Try all the silly cases you can think of