#include <iostream>
#include <cstdio>
#include <vector>
#include <list>
#include <algorithm>
#include <cmath>
#include <stack>
#include <map>
#include <numeric>
#include <sstream>
#include <queue>
#include <iomanip>
using namespace std;

#define REP(i,n) for(int (i)=0; (i)<(n); (i)++)
#define FOR(i,a,b) for(int (i)=(a); (i)<(b); (i)++)
#define PUSH(n,v) for(int i=0; i<(n); i++) {int j; cin >> j; v.push_back(j);}
#define ALL(v) v.begin(), v.end()
#define print(s) cout << (s) << endl

string strAdd(string a,string b){
    if(a.size() < b.size())return strAdd(b,a);
    
    reverse(a.begin(),a.end());
    reverse(b.begin(),b.end());
    
    int carry = 0;
    for(int i=0;i<a.size();i++){
        a[i] += carry;
        if(i<b.size())a[i] += b[i] - '0';
        if(a[i] > '9'){
            carry = 1;
            a[i] -= 10;
        }else carry = 0;
    }
    
    if(carry)a += "1";
    reverse(a.begin(),a.end());
    return a;
}

bool checkStr(string s) {
    return s.size() > 1 && s[0] == '0';
}

bool isCorrect(string s) {
    int plus;
    REP(i,s.size()) {
        if (s[i] == '+') {
            plus = i;
            break;
        }
    }
    int equal;
    FOR(i,plus+2,s.size()) {
        if (s[i] == '=') {
            equal = i;
            break;
        }
    }
    string a = "", b = "", c = "";
    REP(i,plus) {
        a += s[i];
    }
    FOR(i,plus+1,equal) {
        b += s[i];
    }
    FOR(i,equal+1,s.size()) {
        c += s[i];
    }
    if (checkStr(a) || checkStr(b) || checkStr(c)) {
        return false;
    }
    return strAdd(a,b) == c;
}

string replaceX(string s, int j) {
    string t = "";
    REP(i,s.size()) {
        if (s[i] == 'X') t += (char)('0' + j);
        else t += s[i];
    }
    return t;
}

void solve110(string s) {
    REP(i,10) {
        string t = replaceX(s,i);
        if (isCorrect(t)) {
            cout << i << endl;
            return;
        }
    }
    cout << "NA" << endl;
}

int main() {
    string s;
    while (cin >> s) {
        solve110(s);
    }
    return 0;
}