#include<iostream>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<cstdlib>
using namespace std;
#define REP(i,a,n) for(int i = a ; i < n ; i++)
#define rep(i,n) REP(i,0,n)

typedef long long ll;

string bt[] = {
  " ",
  "\',.!?",
  "abcABC",
  "defDEF",
  "ghiGHI",
  "jklJKL",
  "mnoMNO",
  "pqrsPQRS",
  "tuvTUV",
  "wxyzWXYZ",
};

int main(){
  string s;

  while(cin>>s){
    int i = 0;

    while(i < s.length()){
      if(s[i] == '0'){
        cout<<" ";
        i++;
        continue;
      }

      char ch = s[i];
      int j = i;
      while(i<s.length() && ch == s[i]) i++;
      cout<<bt[ch-'0'][(i-j-1)%bt[ch-'0'].length()];

      if(i >= s.length()) break;
      if(s[i] == '0') i++;
    }

    cout<<endl;
  }
}