#include <iostream>
#include <ctype.h>
using namespace std;

int getoffset(char c)
{
    if(c=='A') return 0;
    else if(c=='B') return 5;
    else if(c=='C') return 10;
    else if(c=='D') return 15;
    else if(c=='E') return 20;
    else if(c=='F') return 25;
    else if(c=='G') return 30;
    else if(c=='H') return 35;
    else if(c=='I') return 40;
    else if(c=='J') return 45;
    else if(c=='K') return 50;
    else if(c=='L') return 55;
    else if(c=='M') return 60;
    else if(c=='N') return 65;
    else if(c=='O') return 70;
    else if(c=='P') return 75;
    else if(c=='Q') return 80;
    else if(c=='R') return 85;
    else if(c=='S') return 90;
    else if(c=='T') return 95;
    else if(c=='U') return 100;
    else if(c=='V') return 105;
    else if(c=='W') return 110;
    else if(c=='X') return 115;
    else if(c=='Y') return 120;
    else if(c=='Z') return 125;
}

int main()
{
    int convertarray[130];

    convertarray[0]=0xFF;
    convertarray[1]=0x88;
    convertarray[2]=0x88;
    convertarray[3]=0x88;
    convertarray[4]=0xFF;

    convertarray[5]=0xFF;
    convertarray[6]=0x89;
    convertarray[7]=0x89;
    convertarray[8]=0x89;
    convertarray[9]=0xFF;

    convertarray[10]=0xFF;
    convertarray[11]=0x81;
    convertarray[12]=0x81;
    convertarray[13]=0x81;
    convertarray[14]=0x81;

    convertarray[15]=0xFF;
    convertarray[16]=0x81;
    convertarray[17]=0x81;
    convertarray[18]=0x42;
    convertarray[19]=0x3C;

    convertarray[20]=0xFF;
    convertarray[21]=0x89;
    convertarray[22]=0x89;
    convertarray[23]=0x89;
    convertarray[24]=0x81;

    convertarray[25]=0xFF;
    convertarray[26]=0x88;
    convertarray[27]=0x88;
    convertarray[28]=0x88;
    convertarray[29]=0x80;

    convertarray[30]=0x7E;
    convertarray[31]=0x81;
    convertarray[32]=0x89;
    convertarray[33]=0x89;
    convertarray[34]=0x0E;

    convertarray[35]=0xFF;
    convertarray[36]=0x08;
    convertarray[37]=0x08;
    convertarray[38]=0x08;
    convertarray[39]=0xFF;


    convertarray[40]=0x81;
    convertarray[41]=0x81;
    convertarray[42]=0xFF;
    convertarray[43]=0x81;
    convertarray[44]=0x81;

    convertarray[45]=0x0E;
    convertarray[46]=0x81;
    convertarray[47]=0x81;
    convertarray[48]=0xFE;
    convertarray[49]=0x80;

    convertarray[50]=0xFF;
    convertarray[51]=0x18;
    convertarray[52]=0x24;
    convertarray[53]=0x42;
    convertarray[54]=0x81;

    convertarray[55]=0xFF;
    convertarray[56]=0x01;
    convertarray[57]=0x01;
    convertarray[58]=0x01;
    convertarray[59]=0x01;

    convertarray[60]=0xFF;
    convertarray[61]=0x40;
    convertarray[62]=0x20;
    convertarray[63]=0x40;
    convertarray[64]=0xFF;

    convertarray[65]=0xFF;
    convertarray[66]=0x20;
    convertarray[67]=0x08;
    convertarray[68]=0x02;
    convertarray[69]=0xFF;

    convertarray[70]=0x7E;
    convertarray[71]=0x81;
    convertarray[72]=0x81;
    convertarray[73]=0x81;
    convertarray[74]=0x7E;

    convertarray[75]=0xFF;
    convertarray[76]=0x88;
    convertarray[77]=0x88;
    convertarray[78]=0x88;
    convertarray[79]=0x70;

    convertarray[80]=0x7C;
    convertarray[81]=0x82;
    convertarray[82]=0x82;
    convertarray[83]=0x82;
    convertarray[84]=0x7D;

    convertarray[85]=0xFF;
    convertarray[86]=0x98;
    convertarray[87]=0x94;
    convertarray[88]=0x92;
    convertarray[89]=0x61;

    convertarray[90]=0x62;
    convertarray[91]=0x91;
    convertarray[92]=0x91;
    convertarray[93]=0x91;
    convertarray[94]=0x0E;

    convertarray[95]=0x80;
    convertarray[96]=0x80;
    convertarray[97]=0xFF;
    convertarray[98]=0x80;
    convertarray[99]=0x80;

    convertarray[100]=0xFE;
    convertarray[101]=0x01;
    convertarray[102]=0x01;
    convertarray[103]=0x01;
    convertarray[104]=0xFE;

    convertarray[105]=0xE0;
    convertarray[106]=0x1E;
    convertarray[107]=0x01;
    convertarray[108]=0x1E;
    convertarray[109]=0xE0;

    convertarray[110]=0xFE;
    convertarray[111]=0x01;
    convertarray[112]=0x0E;
    convertarray[113]=0x01;
    convertarray[114]=0xFE;

    convertarray[115]=0xC3;
    convertarray[116]=0x2C;
    convertarray[117]=0x10;
    convertarray[118]=0x2C;
    convertarray[119]=0xC3;

    convertarray[120]=0xC0;
    convertarray[121]=0x20;
    convertarray[122]=0x1F;
    convertarray[123]=0x20;
    convertarray[124]=0xC0;

    convertarray[125]=0x81;
    convertarray[126]=0x83;
    convertarray[127]=0x9D;
    convertarray[128]=0xA1;
    convertarray[129]=0xC1;

    int counter=0;
    string s="";
    cin>> s;
    for(int x=0;x<s.length();x++)
    {
        s[x]=toupper(s[x]);
    }
    int n=7*s.length()+5;
    cout<<"#include <avr/io.h>\n#include <avr/interrupt.h>\n#include<util/delay.h>"<<endl;
    cout<<"int string["<<n<<"];"<<endl;

    cout<<"int main(){"<<endl;
    if(s.length()>26) cout<<"string length should be <26"<<endl;
    else
    {
        for(int i=0;i<s.length();i++)
        {
            int n=getoffset(s[i]);
            for(int j=0;j<5;j++)
            {
                cout<<"string["<<counter<<"]="<<convertarray[n+j]<<";"<<endl;
                counter++;
            }
            cout<<"string["<<counter<<"]=0x00;"<<endl;
            counter++;
            cout<<"string["<<counter<<"]=0x00;"<<endl;
            counter++;
        }
        cout<<"string["<<counter<<"]=0x00;"<<endl;
        counter++;
        cout<<"string["<<counter<<"]=0x00;"<<endl;
        counter++;
        cout<<"string["<<counter<<"]=0x00;"<<endl;
        counter++;
        cout<<"string["<<counter<<"]=0x00;"<<endl;
        counter++;
        cout<<"string["<<counter<<"]=0x00;"<<endl;
        counter++;
        cout<<"DDRD=0x01;\nPORTD=0x01;\nDDRB=0xff;\nPORTB=0x00;\n"<<endl;
        cout<<"while(1){while((PIND&0x02)==0){}"<<endl;
        cout<<"{\nint i=0;\n_delay_ms(1000);\nfor(i=0;i<"<<n<<";i++)\n{\nPORTB=string[i];\n_delay_ms(10);\n}\n}"<<endl;
        cout<<"}\n}"<<endl;
    }
    return 0;
}