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

using std::cin;
using std::cout;
using std::endl;
using std::getline;
using std::replace;
using std::reverse;
using std::stoll;
using std::string;

string big_add(string a,string b) {
	string res;
	auto ai = a.rbegin();
	auto bi = b.rbegin();
	char carry = '\0';
	while (ai != a.rend() && bi != b.rend()) {
		res.push_back((*ai-'0'+*bi-'0'+carry)%(char)10+'0');
		carry = (*(ai++)-'0'+*(bi++)-'0'+carry)/(char)10;
	}
	if (ai != a.rend() || bi != b.rend()) {
		auto i = ai != a.rend() ? ai : bi;
		string& s = ai != a.rend() ? a : b;
		while (i != s.rend()) {
			res.push_back((*i-'0'+carry)%(char)10+'0');
			carry = (*(i++)-'0'+carry)/(char)10;
		}
	}
	if (carry != '\0') {
		res.push_back('1');
	}
	reverse(res.begin(),res.end());
	return res;
}

bool x_is_right(string a,string b,string c,char x) {
	replace(a.begin(),a.end(),'X',x);
	replace(b.begin(),b.end(),'X',x);
	replace(c.begin(),c.end(),'X',x);
	return big_add(a,b) == c;
}

int main() {
	string e; // expression
	while (getline(cin,e)) {
		auto ad_pos = e.find('+');
		auto eq_pos = e.find('=');
		string a = e.substr(0,ad_pos); // first number sequence
		string b = e.substr(ad_pos+1,eq_pos-ad_pos-1); // second number sequence
		string c = e.substr(eq_pos+1); // result number sequence
		string right_x;
		for (char x = (a[0] == 'X' && a.size() != 1)||(b[0] == 'X' && b.size() != 1)||(c[0] == 'X' && c.size() != 1) ? '1' : '0';x <= '9';++x) {
			if (x_is_right(a,b,c,x)) {
				right_x.assign(1,x);
				break;
			}
		}
		cout << (right_x.empty() ? "NA" : right_x) << endl;
	}
}