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

int max(int x, int y)
{
	return x>y ? x : y;
}

std::string sadd(std::string str_a, std::string str_b)
{
	// padding
	while (str_a.size() > str_b.size()) str_b.insert(0, "0");
	while (str_b.size() > str_a.size()) str_a.insert(0, "0");
	
	std::string res(str_a);
	int carry = 0;
	for (int i=res.size()-1; i>=0; i--) {
		res[i] += str_b[i] - 48 + carry;
		if (res[i] > '9') {
			res[i] -= 10;
			carry = 1;
		}
		else carry = 0;
	}
	if (carry==1) res.insert(0, "1");
	
	// std::cout << str_a << "," << str_b << "," << res << std::endl;
	
	return res;
}

int main ()
{
	std::string eq;
	while (getline(std::cin, eq)) {
		int pos_plus  = eq.find('+');
		int pos_equal = eq.find('=');
		
		std::vector<int> Xpos;
		for (int pos=0; pos < eq.size(); pos++) {
			if ( eq[pos] == 'X' ) Xpos.push_back(pos);
		}
		
		int ans = -1;
		for (int x=0; x<10; x++) {
			std::string eq_cpy(eq);
			for (std::vector<int>::iterator it = Xpos.begin(); it != Xpos.end(); ++it) {
				// size_type pos, size_type n1, size_type n2, charT c
				eq_cpy.replace((*it), 1, 1, (char)(x+48));
			}
			std::string str_a = eq_cpy.substr(0, pos_plus);
			std::string str_b = eq_cpy.substr(pos_plus + 1, pos_equal - pos_plus - 1);
			std::string str_c = eq_cpy.substr(pos_equal + 1);
			
			if (str_a.size() > 1 && str_a[0] == '0' || str_b.size() > 1 && str_b[0] == '0' || str_c.size() > 1 && str_c[0] == '0') continue;

			// std::cout << x << " : " << a << "," << b << "," << c << std::endl;
			
			if ( sadd(str_a, str_b) == str_c ) {
				ans = x; break;
			}
		}
		
		if (ans >= 0) std::cout << ans << std::endl;
		else std::cout << "NA" << std::endl;
	}
	
	return 0;
}


