#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<string>
#define lol(i,n) for(int i=0;i<n;i++)
#define mod 1000000007
typedef long long ll;
using namespace std;

int cnt[130],xcnt[130];
bool F(int x){
  int kuri=0;
  for(int k=0;k<128;k++){
    int a=kuri+cnt[k]+xcnt[k]*x;
    if(a<0||a%10!=0)return false;
    kuri=a/10;
  }
  return true;
}

int main(){
  string s;
  while(cin>>s){
    for(int k=0;k<130;k++)cnt[k]=0,xcnt[k]=0;
    string a,b,c;char pnt='a';
    for(int i=0;i<s.size();i++){
      if(pnt=='a')a.push_back(s[i]);
      if(pnt=='b')b.push_back(s[i]);
      if(pnt=='c')c.push_back(s[i]);
      if(s[i]=='+')pnt='b';
      if(s[i]=='=')pnt='c';
    }
    a=a.substr(0,a.size()-1);
    b=b.substr(0,b.size()-1);
    for(int i=0;i<a.size();i++){
      if(a[i]=='X')xcnt[a.size()-i-1]++;
      else cnt[a.size()-i-1]+=a[i]-'0';
    }
    for(int i=0;i<b.size();i++){
      if(b[i]=='X')xcnt[b.size()-i-1]++;
      else cnt[b.size()-i-1]+=b[i]-'0';
    }
    for(int i=0;i<c.size();i++){
      if(c[i]=='X')xcnt[c.size()-i-1]--;
      else cnt[c.size()-i-1]-=c[i]-'0';
    }
    bool na=true;
    for(int i=1;i<=9;i++){
      if(F(i)==true){
	cout<<i<<endl;
	na=false;
      }
    }
    if(na)cout<<"NA"<<endl;
  }
  return 0;
}