#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
int a[126], b[126], c[126], d[126]; bool ta[126], tb[126], tc[126]; string S, R1, R2, R3;
int main() {
	while (cin >> S) {
		int s = 0; R1 = ""; R2 = ""; R3 = "";
		for (int i = 0; i < S.size(); i++) {
			if (S[i] == '+') { s++; continue; }
			if (S[i] == '=') { s++; continue; }
			if (s == 0) R1 += S[i];
			if (s == 1) R2 += S[i];
			if (s == 2) R3 += S[i];
		}
		for (int i = 0; i < 126; i++) ta[i] = false, a[i] = 0;
		for (int i = 0; i < 126; i++) tb[i] = false, b[i] = 0;
		for (int i = 0; i < 126; i++) tc[i] = false, c[i] = 0;
		reverse(R1.begin(), R1.end()); for (int i = 0; i < R1.size(); i++) { if (R1[i] == 'X') ta[i] = true; else a[i] = R1[i] - 48; }
		reverse(R2.begin(), R2.end()); for (int i = 0; i < R2.size(); i++) { if (R2[i] == 'X') tb[i] = true; else b[i] = R2[i] - 48; }
		reverse(R3.begin(), R3.end()); for (int i = 0; i < R3.size(); i++) { if (R3[i] == 'X') tc[i] = true; else c[i] = R3[i] - 48; }
		bool ok = false;
		for (int i = 0; i < 10; i++) {
			if (i == 0) {
				bool flag1 = ta[R1.size() - 1] && R1.size() > 1;
				bool flag2 = tb[R2.size() - 1] && R2.size() > 1;
				bool flag3 = tc[R3.size() - 1] && R3.size() > 1;
				if (flag1 || flag2 || flag3) continue;
			}
			for (int j = 0; j < R1.size(); j++) if (ta[j]) a[j] = i;
			for (int j = 0; j < R2.size(); j++) if (tb[j]) b[j] = i;
			for (int j = 0; j < R3.size(); j++) if (tc[j]) c[j] = i;
			for (int j = 0; j < 126; j++) d[j] = 0;
			for (int j = 0; j < 126; j++) { d[j] += a[j] + b[j]; if (j != 125) d[j + 1] += d[j] / 10, d[j] %= 10; }
			bool flag = true;
			for (int j = 0; j < 126; j++) if (c[j] != d[j]) flag = false;
			if (flag) {
				printf("%d\n", i); ok = true; break;
			}
		}
		if (!ok) {
			printf("NA\n");
		}
	}
	return 0;
}