#include <bits/stdc++.h>
using namespace std;
map<char, int> cnt;
int main() {
  ios::sync_with_stdio(0);
  int n;
  cin >> n;
  multiset<pair<int, string> > se;
  multiset<pair<int, string> >::iterator it;
  string s;
  cout << "? 1 " << n << endl;
  fflush(stdout);
  for (int i = 0; i < n * (n + 1) / 2; i++) {
    cin >> s;
    sort(s.begin(), s.end());
    se.insert(make_pair(s.size(), s));
  }
  if (n == 1) {
    cout << "! " << s << endl;
    fflush(stdout);
    return 0;
  }
  cout << "? 2 " << n << endl;
  fflush(stdout);
  for (int i = 0; i < n * (n - 1) / 2; i++) {
    cin >> s;
    sort(s.begin(), s.end());
    it = se.find(make_pair(s.size(), s));
    if (it != se.end()) {
      se.erase(it);
    }
  }
  string ans = "";
  for (int i = 0; i < n; i++) {
    map<char, int> t = cnt;
    pair<int, string> p;
    p = *se.begin();
    for (int j = 0; j < p.first; j++) {
      t[p.second[j]]--;
    }
    for (char j = 'a'; j <= 'z'; j++) {
      if (t[j] == -1) {
        ans += j;
        cnt[j]++;
      }
    }
    se.erase(se.begin());
  }
  cout << "! " << ans << endl;
  fflush(stdout);
}
