/*
TASK: REBUS
LANG: C
*/
#include <stdio.h>
#include <math.h>
int fl,let[30]={0},used[30],ind[30]={0},dig [15]={0};
long long b[30]={0};
void rec (int);
void prov ();
void print ();
int main ()
{
 long long d;
 char a[105]={0};
 char p,prev='+';
 int i,j,k,l;
 i=0;
 j=0;
 k=0;
 l=0;
 while (!feof (stdin))
       {
        if (feof (stdin)) break;
        for (i=0;;i++)
            {
             scanf ("%c",&p);
             if (!isalpha (p)) break;
             a[i]=p;
             let[p-'A']=1;
            }
        if (p=='=') fl=1;
        for (j=0;j<i;j++)
            {
             d=1;
             for (k=0;k<i-j-1;k++)
                 d*=10;
             if (prev=='+' && fl==0) b[a[j]-'A']+=d;
             else if (prev=='+' && fl==1) b[a[j]-'A']-=d;
             else if (prev=='-' && fl==0) b[a[j]-'A']-=d;
             else if (prev=='-' && fl==1) b[a[j]-'A']+=d;
            }
        prev=p;
        if (prev=='=') prev='+';
       }
 fl=0;
 for (i=0;i<26;i++)
     used[i]=let[i];
 for (i=0;i<26;i++)
     if (let[i]) break;
 used [i]=0;
 rec (i);
 return 0;
}


void rec (int p)
{
 int i,j;
 if (fl) return;
 for (i=0;i<=9;i++)
     if (!dig[i])
        {
         ind[p]=i;
         dig[i]=1;
         for (j=p;j<26;j++)
             if (used[j]) break;
         if (j==26) prov();
         else {
               used[j]=0;
               rec (j);
               used[j]=1;
              }
         dig[i]=0;
         ind[p]=0;
        }
 return;
}


void prov ()
{
 long long p=0;
 int i;
 for (i=0;i<26;i++)
     if (let[i])
        p+=ind [i]*b[i];
 if (!p) print ();
 return;
}


void print ()
{
 fl=1;
 int i;
 for (i=0;i<26;i++)
     if (let [i])
         printf ("%c=%d\n",i+'A',ind[i]);
 return;
}
