#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cassert>
#include <iostream>
#include <cctype>
#include <sstream>
#include <string>
#include <list>
#include <vector>
#include <queue>
#include <set>
#include <stack>
#include <map>
#include <utility>
#include <numeric>
#include <algorithm>
#include <iterator>
#include <bitset>
#include <complex>
#include <fstream>
#include <iomanip>
using namespace std;
typedef long long ll;
const double EPS = 1e-9;
typedef vector<int> vint;
typedef pair<int, int> pint;
#define rep(i, n) REP(i, 0, n)
#define ALL(v) v.begin(), v.end()
#define MSG(a) cout << #a << " " << a << endl;
#define REP(i, x, n) for(int i = x; i < n; i++)
template<class T, class C> void chmax(T& a, C b){ if(a < b) a = b; }
template<class T, class C> void chmin(T& a, C b){ if(b < a) a = b; }
template<class T, class C> pair<T, C> mp(T a, C b){ return make_pair(a, b); }

string calc(string a, string b)
{
	int max_size = max(a.size(), b.size());

	vint res(max_size + 1, 0);

	rep(i, max_size)
	{
		int anum = i < a.size() ? a[a.size() - 1 - i] - '0' : 0;
		int bnum = i < b.size() ? b[b.size() - 1 - i] - '0' : 0;
		
		res[i] += anum + bnum;

		res[i + 1] += res[i] / 10;
		res[i] %= 10;
	}

	string ret;
	rep(i, max_size + 1)
		ret = char(res[i] + '0') + ret;

	if(ret[0] == '0') ret = ret.substr(1, ret.size() - 1);

	return ret;
}

bool solve(string line, char x)
{
	rep(i, line.size())
		if(line[i] == 'X')
			line[i] = x;

	string v[3];
	int index = 0;
	rep(i, line.size())
	{
		if(isdigit(line[i]))
			v[index] += line[i];
		else 
			index++;
	}

	return calc(v[0], v[1]) == v[2];
}

int main()
{
	string line;
	while(cin >> line)	
	{
		rep(i, 10)
		{
			if(solve(line, '0' + i))
			{
				cout << i << endl;

				goto ng;
			}
		}

		cout << "NA" << endl;
ng:
		;
	}
}