#include <stdio.h>

/* 获取阿拉伯数字对应的中文数字 */
int get_value(int data, char* value)
{
    switch(data)
    {
        case 0: 
            memcpy(value, "零", strlen("零"));
            break;
        case 1: 
            memcpy(value, "壹", strlen("壹"));
            break;
        case 2: 
            memcpy(value, "贰", strlen("贰"));
            break;
        case 3: 
            memcpy(value, "叁", strlen("叁"));
            break;
        case 4: 
            memcpy(value, "肆", strlen("肆"));
            break;
        case 5: 
            memcpy(value, "伍", strlen("伍"));
            break;
        case 6: 
            memcpy(value, "陆", strlen("陆"));
            break;
        case 7: 
            memcpy(value, "柒", strlen("柒"));
            break;
        case 8: 
            memcpy(value, "捌", strlen("捌"));
            break;
        case 9: 
            memcpy(value, "玖", strlen("玖"));
            break;
    }
    return 0;
}

/* 获取每一位的单位 0 : 分  1:角 ... >6(万位以上) 和6-4相同*/
int get_unit(int index, char* unit)
{
    if(index > 6)
    {
        index = index - 4;
    }
    switch(index)
    {
        case 0:
            memcpy(unit, "分", strlen("分"));
            break;
        case 1:
            memcpy(unit, "角", strlen("角"));
            break;
        case 2:
            memcpy(unit, "元", strlen("元"));
            break;
        case 3:
            memcpy(unit, "拾", strlen("拾"));
            break;
        case 4:
            memcpy(unit, "佰", strlen("佰"));
            break;
        case 5:
            memcpy(unit, "仟", strlen("仟"));
            break;
        case 6:
            memcpy(unit, "万", strlen("万"));
            break;
    }
    
    return 0;
}

int main()
{
    double money;
    char result_money[100][4] = {0};
    int index = 0;
    int i = 0;
    if(scanf("%lf", &money) != EOF)
    {
        /* 将小数点后的角,分,与前面的结合为一个整数
            多乘一位,再除一位,防止 0.29 * 100 变为 28
        */
        long int cn_money = (long int)(money * 1000);
        cn_money /= 10;
        
        //循环获取每一位的中文数字和对应单位 */
        while(cn_money)
        {
            get_unit(i, result_money[index++]);
            get_value(cn_money % 10, result_money[index++]);
            
            cn_money /= 10;
            i++;
        }
        int flag = 0;
        
        printf("人民币");
        for(int i = index - 1; i >= 0; i--)
        {
            /* 零角或零分时,应该不输出 */
            if((i == 1 && !strcmp(result_money[1], "零"))
              || (i == 3) && !strcmp(result_money[3], "零"))
            {
                i--;
                continue;
            }
            if(i-2 >= 0)
            {
                if(!strcmp(result_money[i], "零"))
                {
                    //遇到零时,置标志位
                    flag = 1;
                    if(!strcmp(result_money[i-2], "零"))
                    {  // 1001 情况,跳过一位数
                        
                        i--;
                        continue;
                    }
                    else if(!strcmp(result_money[i-2], "壹") && !strcmp(result_money[i-3], "拾"))
                    { // 1010 情况,输出一个零 
                        printf("零");
                        i--;
                        continue;
                    }
                }
                
            }
            /* 壹拾 仅输出拾 */
            if(i >= 0 && !strcmp(result_money[i], "壹") && !strcmp(result_money[i-1], "拾"))
            {
                printf("");
            }
            else
            {
                //不为零时,清空标志位
                flag = 0;
                printf("%s", result_money[i]);
            }
            
        }
        
        /* 标志位有效,输出 */
        if(flag)
        {
            printf("元整");
        }
        
    }
    return 0;
}