#include <bits/stdc++.h>
using namespace std;


char st[10010];
void generate(int i , int j)
{
    //cout<<i<<" "<<j<<endl;
    if(i==1 && j==1) cout<<"'";
    if(i==1 && j==2) cout<<",";
    if(i==1 && j==3) cout<<".";
    if(i==1 && j==4) cout<<"!";
    if(i==1 && j==5) cout<<"?";
    //if(i==1 && j==1) cout<<"'";

    if(i==2 && j==1) cout<<"a";
    if(i==2 && j==2) cout<<"b";
    if(i==2 && j==3) cout<<"c";
    if(i==2 && j==4) cout<<"A";
    if(i==2 && j==5) cout<<"B";
    if(i==2 && j==6) cout<<"C";

    if(i==3 && j==1) cout<<"d";
    if(i==3 && j==2) cout<<"e";
    if(i==3 && j==3) cout<<"f";
    if(i==3 && j==4) cout<<"D";
    if(i==3 && j==5) cout<<"E";
    if(i==3 && j==6) cout<<"F";

    if(i==4 && j==1) cout<<"g";
    if(i==4 && j==2) cout<<"h";
    if(i==4 && j==3) cout<<"i";
    if(i==4 && j==4) cout<<"G";
    if(i==4 && j==5) cout<<"H";
    if(i==4 && j==6) cout<<"I";

    if(i==5 && j==1) cout<<"j";
    if(i==5 && j==2) cout<<"k";
    if(i==5 && j==3) cout<<"l";
    if(i==5 && j==4) cout<<"J";
    if(i==5 && j==5) cout<<"K";
    if(i==5 && j==6) cout<<"L";

    if(i==6 && j==1) cout<<"m";
    if(i==6 && j==2) cout<<"n";
    if(i==6 && j==3) cout<<"o";
    if(i==6 && j==4) cout<<"M";
    if(i==6 && j==5) cout<<"N";
    if(i==6 && j==6) cout<<"O";

    if(i==7 && j==1) cout<<"p";
    if(i==7 && j==2) cout<<"q";
    if(i==7 && j==3) cout<<"r";
    if(i==7 && j==4) cout<<"s";
    if(i==7 && j==5) cout<<"P";
    if(i==7 && j==6) cout<<"Q";
    if(i==7 && j==7) cout<<"R";
    if(i==7 && j==8) cout<<"S";

    if(i==8 && j==1) cout<<"t";
    if(i==8 && j==2) cout<<"u";
    if(i==8 && j==3) cout<<"v";
    if(i==8 && j==4) cout<<"T";
    if(i==8 && j==5) cout<<"U";
    if(i==8 && j==6) cout<<"V";

    if(i==9 && j==1) cout<<"w";
    if(i==9 && j==2) cout<<"x";
    if(i==9 && j==3) cout<<"y";
    if(i==9 && j==4) cout<<"z";
    if(i==9 && j==5) cout<<"W";
    if(i==9 && j==6) cout<<"X";
    if(i==9 && j==7) cout<<"Y";
    if(i==9 && j==8) cout<<"Z";


}


int main()
{
    //freopen("a.txt","r",stdin);

   int n,i,j;
   while(scanf("%s",st)!=EOF)
   {
       int len=strlen(st);
       int count1,count2;
       for(i=0;i<len;i++)
       {
           int x=st[i]-48;
          // cout<<"x : "<<x<<endl;
           if(x==0)
           {
               count1=1;
               while(st[i+1]-48==0)
               {
                   count1++;
                   i++;
               }
              // cout<<count1<<endl;

               if(count1>1)
               {
                   for(j=1;j<count1;j++) printf(" ");
               }
           }

           else
           {
               count2=1;
               while(st[i+1]-48==x)
               {
                   count2++;
                   i++;
               }

              // cout<<count2<<endl;

               if(x==7 || x==9)
               {
                  count2=count2%8;
                  if(count2==0) count2=8;
               }
               else
               {
                   count2=count2%6;
                   if(count2==0) count2=6;
               }


               generate(x,count2);
               //cout<<endl;


           }
       }


       cout<<endl;
   }


}

Measured memory_bytes: 1156