#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#define REP(i, a, b) for(int i = (a); i < (b); ++i)
#define rep(i, n) REP(i, 0, n)

using namespace std;

char buf[128], a[128], b[128], c[128];
char p[128], q[128], r[128];
int main()
{
	while (scanf("%s", buf) != EOF) {
		int al = strlen(strcpy(a, strtok(buf, "+=\n")));
		int bl = strlen(strcpy(b, strtok(NULL, "+=\n")));
		int cl = strlen(strcpy(c, strtok(NULL, "+=\n")));

		int d = 0;
		if (al > 1 && a[0] == 'X' || bl > 1 && b[0] == 'X' || cl > 1 && c[0] == 'X') d = 1;
		int len = max(al, max(bl, cl)) + 1;
		reverse(a, a+al); REP(i, al, len) a[i] = '0';
		reverse(b, b+bl); REP(i, bl, len) b[i] = '0';
		reverse(c, c+cl); REP(i, cl, len) c[i] = '0';

		int res = -1;
		for (int i = d; i < 10; ++i) {
			rep(j, len) p[j] = (a[j] == 'X') ? i : a[j] - '0';
			rep(j, len) q[j] = (b[j] == 'X') ? i : b[j] - '0';
			rep(j, len) r[j] = (c[j] == 'X') ? i : c[j] - '0';
			int t = 0;
			bool found = true;
			rep(j, len) {
				int s = p[j] + q[j] + t;
				if (s >= 10) { s -= 10; t = 1; } else { t = 0; }
				if (s != r[j]) { found = false; break; }
			}
			if (found) { res = i; break; }
		}
		if (res == -1) puts("NA"); else printf("%d\n", res);
	}
	return 0;
}