#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
#include <stack>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <list>
#include <iostream>
#include <climits>
#include <cfloat>


using namespace std;

void set_digit(int* d, int i, char* p)
{
	if (*p == 'X') d[i] = -1;
	else d[i] = *p - '0';
}

const int MaxDigits = 128;
bool canuse_zero(int* d)
{
	for (int i = MaxDigits-1; d[i] <= 0 && i >= 0; --i)
		if (d[i] == -1)
			return false;
	return true;
}
int main()
{
	while (true)
	{
		char buf[1024];
		cin.getline(buf, sizeof(buf));
		if (strlen(buf) == 0)
			break;

		int a[MaxDigits], b[MaxDigits], c[MaxDigits];
		memset(a, 0, sizeof(a));
		memset(b, 0, sizeof(b));
		memset(c, 0, sizeof(c));
		char* p = strchr(buf, '+') - 1;
		for (int i = 0; p != buf-1; ++i, --p)
			set_digit(a, i, p);
		p = strchr(buf, '=') - 1;
		for (int i = 0; *p != '+'; ++i, --p)
			set_digit(b, i, p);
		p = buf + strlen(buf) - 1;
		for (int i = 0; *p != '='; ++i, --p)
			set_digit(c, i, p);

		int start;
		if (canuse_zero(a) && canuse_zero(b) && canuse_zero(c))
			start = 0;
		else
			start = 1;

		int ans = -1;
		for (int x = start; ans == -1 && x < 10; ++x)
		{
			int sum[MaxDigits];
			int cc[MaxDigits];
			memset(sum, 0, sizeof(sum));
			memset(cc, 0, sizeof(cc));
			for (int i = 0; i < MaxDigits-1; ++i)
			{
				int ta = a[i] == -1 ? x : a[i];
				int tb = b[i] == -1 ? x : b[i];
				cc[i] = c[i] == -1 ? x : c[i];
				sum[i] += ta + tb;
				sum[i+1] = sum[i] / 10;
				sum[i] %= 10;
			}
			bool ok = true;
			for (int i = 0; ok && i < MaxDigits; ++i)
				ok = sum[i] == cc[i];
			if (ok)
				ans = x;
		}
		if (ans != -1)
			printf("%d\n", ans);
		else
			printf("NA\n");
	}

	return 0;
}