#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
map<char,string> numbMap;
map<int,string> lMoneyMap;
void init()
{
    numbMap['0']="零";
    numbMap['1']="壹";
    numbMap['2']="贰";
    numbMap['3']="叁";
    numbMap['4']="肆";
    numbMap['5']="伍";
    numbMap['6']="陆";
    numbMap['7']="柒";
    numbMap['8']="捌";
    numbMap['9']="玖";
    lMoneyMap[0]="";
    lMoneyMap[1]="拾";
    lMoneyMap[2]="佰";
    lMoneyMap[3]="仟";
}
void dealIntMoney(string str)
{
    if(strtol(str.c_str(),NULL,10)==0) return ;
    vector<string> vec;
    reverse(str.begin(), str.end());
    int n=0;
    for(int i=0;i<str.length();i++)
    {
        if(i%4==0)//单位
        {
            if(n==0) vec.push_back("元"); 
            else if(n==1) vec.push_back("万");
            else if(n==2) vec.push_back("亿");
            else if(n==3) vec.push_back("万");     
            n++;
        }
        if(str[i]!='0') vec.push_back(lMoneyMap[i%4]);
        vec.push_back(numbMap[str[i]]);
    }
    string res;
    for(int i=vec.size()-1;i>=0;i--)
    {
        if(vec[i]=="拾")
        {
            if(vec[i-1]=="零" && vec[i+1]=="壹")
            {
                vec[i+1]="";
                vec[i-1]="";   
            }else if(vec[i+1]=="壹") vec[i+1]="";
        }else if(vec[i]=="零" && vec[i-1]=="零") vec[i-1]="";
    }
    for(int i=vec.size()-1;i>=0;i--) cout<<vec[i];
}
void dealAfterMoney(string str)
{
    if(str=="00") return ;
    if(str.length()>0 && str[0]!='0') cout<<numbMap[str[0]]<<"角";
    if(str.length()>1 && str[1]!='0') cout<<numbMap[str[1]]<<"分";
     cout<<endl;
}
int main(int argc,char* argv[])
{
    init();
    string value;
    while(cin>>value)
    {
        cout<<"人民币";
        int pos=value.find(".");
        if(pos==-1 || value.substr(pos+1)=="00"){//只翻译整数
            dealIntMoney(value.substr(0,pos));
            cout<<"整"<<endl;
        }
        else {//翻译整数部分和小数部分
            dealIntMoney(value.substr(0,pos));
            dealAfterMoney(value.substr(pos+1));
        }
    }
    return 0;
}