#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;


// string^ÅÁZðs¢AÊðÔ·
string add(string &str1,string &str2){
  string str;
  int carry = 0;
  for(int i = 0; i < max(str1.size(),str2.size()); i++){
    if(i >= str1.size()){
      int ret = carry + str2[str2.size()-1-i] - '0';
      carry = ret / 10;
      str += (ret % 10) + '0';
    }
    else if(i >= str2.size()){
      int ret = carry + str1[str1.size()-1-i] - '0';
      carry = ret / 10;
      str += (ret % 10) + '0';
    }
    else{
      int ret = str1[str1.size()-1-i] + str2[str2.size()-1-i] - '0' - '0' + carry;
      carry = ret / 10;
      str += (ret % 10) + '0';
    }
  }
  str+=(carry+'0');
  // jóIÏX
  reverse(str.begin(),str.end());
  // æªÌ0ðÁ·
  int idx;
  for(int i = 0; i < str.size(); i++){
    idx=i;
    if(str[i]!='0'||str.size()-1==i)
      break;
  }
  return str.substr(idx);
}

int main(){

	string str;
	while(cin>>str){
		int p=-1;
		int e=-1;
		for(int i = 0; i < str.size(); i++){
			if(str[i]=='+'){
				p=i;
			}
			else if(str[i]=='='){
				e=i;
			}
		}
		string opr1=str.substr(0,p);
		string opr2=str.substr(p+1,e-p-1);
		string obj=str.substr(e+1,str.size()-e-1);

		bool ok=false;
		for(int i = 0; i <= 9; i++){
			if(i==5){
			//	cout<<endl;
			}

			string o1=opr1;
			string o2=opr2;
			string oj=obj;
			for(int j = 0; j < o1.size(); j++){
				if(o1[j]=='X'){
					o1[j]='0'+i;
				}
			}
			for(int j = 0; j < o2.size(); j++){
				if(o2[j]=='X'){
					o2[j]='0'+i;
				}
			}
			for(int j = 0; j < oj.size(); j++){
				if(oj[j]=='X'){
					oj[j]='0'+i;
				}
			}
			if(add(o1,o2)==oj){
				ok=true;
				cout<<i<<endl;
				break;
			}
		}
		if(!ok){
			cout<<"NA"<<endl;
		}
	}

	return 0;
}