#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  int n;
  cin >> n;
  map<int, int> d3;
  for (int i = 2; i <= 2 * n; i++) {
    d3[(i - 1) * (i - 2) / 2] = i;
  }
  int a111, a123;
  cin >> a111 >> a123;
  int init111 = a111, init123 = a123;
  int b111, b123;
  int cnt[n], add[n], diff[n];
  fill(add, add + n, 0);
  cout << "+ " << 3 << endl;
  add[2]++;
  cin >> b111 >> b123;
  a111 = b111, a123 = b123;
  cout << "+ " << 1 << endl;
  add[0]++;
  cin >> b111 >> b123;
  int a2a3 = b123 - a123;
  a111 = b111, a123 = b123;
  cout << "+ " << 2 << endl;
  add[1]++;
  cin >> b111 >> b123;
  cnt[1] = a2a3 == 0 ? 1 : d3[b111 - a111];
  int a1a3_a3a4 = b123 - a123;
  a111 = b111, a123 = b123;
  cout << "+ " << 1 << endl;
  add[0]++;
  cin >> b111 >> b123;
  cnt[0] = d3[b111 - a111];
  a2a3 = b123 - a123;
  cnt[2] = a2a3 / cnt[1];
  cnt[3] = a1a3_a3a4 / cnt[2] - (cnt[0] - 1);
  a111 = b111, a123 = b123;
  bool nxt0;
  for (int i = 3; i < n - 1; i++) {
    cout << "+ " << i + 1 << endl;
    add[i]++;
    cin >> b111 >> b123;
    if (i > 3) {
      cnt[i] = nxt0 ? 1 : d3[b111 - a111];
    } else {
      cnt[i]++;
    }
    nxt0 = b123 - a123 - cnt[i - 1] * cnt[i - 2] == 0;
    if (i == n - 2) {
      cnt[i + 1] = (b123 - a123) / cnt[i - 1] - cnt[i - 2];
    }
    a111 = b111, a123 = b123;
  }
  cout << "!";
  for (int i = 0; i < n; i++) {
    cout << " " << cnt[i] - add[i];
  }
  cout << endl;
  return 0;
}
