#include <bits/stdc++.h>

using namespace std;

#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,n) FOR(i,0,n)

string culc(string a, string b) {
	string res;
	if (a.size() > b.size()) swap(a, b);
	int la = a.size(), lb = b.size(); // la <= lb
	int pos = 0, c = 0;
	
	while (pos < la) {
		c = a[la - pos - 1] - '0' + b[lb - pos - 1] - '0' + c;
		res.push_back(c % 10 + '0');
		c /= 10;
		pos++;
	}
	while (pos < lb) {
		c = b[lb - pos - 1] - '0' + c;
		res.push_back(c % 10 + '0');
		c /= 10;
		pos++;
	}
	if (c != 0) res.push_back(c + '0');
	
	reverse(res.begin(), res.end());
	return res;
}

int main() {
	string str;
	while (cin >> str) {
		vector<string> v;
		
		int ans = -1;
		REP(i, 10) {
			string tmp = str;
			REP(j, tmp.size()) {
				if (tmp[j] == 'X') tmp[j] = i + '0';
				else if (tmp[j] == '=') tmp[j] = '+';
			}
			
			v.clear();
			int pos = 0;
			while (pos < tmp.size()) {
				v.push_back("");
				int c = v.size() - 1;
				
				while (pos < tmp.size() && tmp[pos] != '+') {
					v[c].push_back(tmp[pos++]);
				}
				pos++;
			}
			
			bool f = false;
			REP(j, v.size())
				if (v[j].size() > 1 && v[j][0] == '0') f = true;
			if (f) continue;
			
			FOR(j, 1, v.size() - 1) {
				v[j] = culc(v[j - 1], v[j]);
			}
			
			if (v[v.size() - 2] == v[v.size() - 1]) ans = i;
		}
		
		if (ans != -1) cout << ans << endl;
		else puts("NA");
	}
	return 0;
}