#include <stdio.h>

char W[8][4]={"ABC","DEF","GHI","JKL","MNO","PRS","TUV","XYZ"};
char ord[100],t[100];

void MLX(int k, int pos){
  if(ord[k]==0){ //Vi har natt slutet pa den inmatade sifferfoljden.
    t[pos]=0;    //Markera ett slut pa det bildade ordet och skriv ut det.
    printf("%s\n", t);  
    return;
  }
  t[pos]=W[ord[k]-'2'][0];
  MLX(k+1,pos+1);  //En siffra ger en bokstav
  if(ord[k+1]==ord[k]) {
    t[pos]=W[ord[k]-'2'][1];
    MLX(k+2,pos+1); //Tva siffror ger en bokstav
    if(ord[k+2]==ord[k]) {
      t[pos]=W[ord[k]-'2'][2];
      MLX(k+3,pos+1);  //Tre siffror ger en bokstav
    }
  }
}
      
int main() {
  printf("Siffersekvens ? ");
  scanf("%s", ord);
  MLX(0,0);
  return 0;
}
