#include <bits/stdc++.h>
using namespace std;
map<string, int> sav[105];
vector<string> rec[105];
int cnt[26], ans[105];
string s;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  if (n > 1) {
    cout << "? " << 1 << " " << n - 1 << endl;
    for (int i = 1, len; i <= n * (n - 1) / 2; i++) {
      cin >> s;
      len = s.size();
      sort(s.begin(), s.end());
      sav[len][s]++;
    }
  }
  cout << "? " << 1 << " " << n << endl;
  for (int i = 1, len; i <= n * (n + 1) / 2; i++) {
    cin >> s;
    len = s.size();
    sort(s.begin(), s.end());
    rec[len].push_back(s);
  }
  for (int i = 1; i <= n; i++) {
    for (auto it : rec[i]) {
      if (sav[i][it]) {
        sav[i][it]--;
      } else {
        memset(cnt, 0, sizeof(cnt));
        for (int j = 0; j < i; j++) {
          cnt[it[j] - 'a']++;
        }
        for (int j = n - i + 2; j <= n; j++) {
          cnt[ans[j]]--;
        }
        for (int j = 0; j < 26; j++) {
          if (cnt[j]) {
            ans[n - i + 1] = j;
          }
        }
        break;
      }
    }
  }
  cout << "! ";
  for (int i = 1; i <= n; i++) {
    cout << (char)('a' + ans[i]);
  }
  cout << endl;
  return 0;
}
