#include <iostream>
#include <sstream>
#include <cstdio>
#include <vector>
#include <algorithm>

#define INF 1 << 16;

using namespace std;

int pos;
string expr;

bool keisan();
string number();

string wa(string str1, string str2) {
	int sz = max(str1.size(), str2.size()) + 1;

	reverse( str1.begin(), str1.end() );
	reverse( str2.begin(), str2.end() );

	vector<int> v(sz, 0);
	for (int i = 0; i < str1.size(); ++i) v[i] += str1[i]-'0';
	for (int i = 0; i < str2.size(); ++i) v[i] += str2[i]-'0';

	for (int i = 0; i < sz-1; ++i) {
		v[i+1] += v[i] / 10;
		v[i] %= 10;
	}
	reverse( v.begin(), v.end() );

	bool f = false; string ret = "";
	for (int i = 0; i < sz; ++i) {
		if (v[i]) f = true;
		if (f) ret += v[i] + '0';
	}

	if (ret == "") ret = "0";

	return ret;
}

bool check() {
	string kou1 = number(); ++pos;
	string kou2 = number(); ++pos;
	string right = number();

	if (kou1.size() > 1 && kou1[0] == '0') return false;
	if (kou2.size() > 1 && kou2[0] == '0') return false;
	if (right.size() > 1 && right[0] == '0') return false;

	string left = wa(kou1, kou2);

	return right == left;
}
string number() {
	string str = "";
	while (expr[pos] >= '0' && expr[pos] <= '9')
		str += expr[pos++];

	return str;
}

string replace(string str, char c1, char c2) {
	for (int i = 0; i < str.size(); ++i)
		if (str[i] == c1) str[i] = c2;

	return str;
}

int main() {
	char s[1000];
	while (scanf("%s", s) != EOF) {
		string str = "";

		for (int i = 0; s[i]; ++i) str += s[i];
		str += '=';

		int ans = -1;
		for (int i = 0; i < 10; ++i) {
			pos = 0;
			expr = replace(str, 'X', i+'0');
			if ( check() ) ans = i;
		}

		if (ans < 0) cout << "NA" << endl;
		else cout << ans << endl;
	}
}