#include <bits/stdc++.h>

using namespace std;
using ll = long long;
using pii = pair<int, int>;

vector<string> split(const string &s, const string& seps) {
  vector<string> res;
  int pos = 0, sz = seps.size();
  size_t find_pos = string::npos;
  while (true) {
    for (int i = 0; i < sz; i++) {
      size_t tmp = s.find(seps[i], pos);
      if (find_pos == string::npos || tmp < find_pos) find_pos = tmp;
    }
    if (find_pos == string::npos) break;
    res.emplace_back(s.substr(pos, find_pos - pos));
    pos = find_pos + 1;
    find_pos = string::npos;
  }
  if (pos < (int)s.size()) res.emplace_back(s.substr(pos));
  return res;
}

string &replaceAll(string &s, const string &from, const string &to) {
  int pos = 0;
  size_t find_pos = string::npos;
  while ((find_pos = s.find(from, pos)) != string::npos) {
    s.replace(find_pos, from.size(), to);
    pos = find_pos + to.size();
  }
  return s;
}

string sum_string(string s, string t) {
  if ((int)s.size() < (int)t.size()) swap(s, t);
  reverse(s.begin(), s.end());
  reverse(t.begin(), t.end());
  for (int i = 0; i < (int)t.size(); i++) {
    if ((s[i] - '0') + (t[i] - '0') < 10) {
      s[i] += (t[i] - '0'); 
    } else {
      s[i] = s[i] + (t[i] - '0') - ('9' + 1) + '0';
      int tmp = i + 1;
      while (tmp < (int)s.size() && s[tmp] == '9') s[tmp++] = '0';
      if (tmp == (int)s.size()) s += "1";
      else s[tmp] += 1;
    }
  }
  reverse(s.begin(), s.end());
  return s;
}

int main() {
  cin.tie(0);
  ios_base::sync_with_stdio(false);
  cout << fixed << setprecision(10);
  
  string s;
  while (cin >> s) {
    auto v = split(s, "+=");
    int ans = -1;
    for (int i = 0; i < 10; i++) {
      auto w = v;
      for (int j = 0; j < 3; j++) {
        replaceAll(w[j], "X", to_string(i));
      }
      if (sum_string(w[0], w[1]) == w[2]) ans = i;
    }
    if (ans < 0) cout << "NA" << endl;
    else cout << ans << endl;
  }

  return 0;
}
