/* Code for problem A by cookiedoth Generated 13 Aug 2020 at 06.32 PM ______▄███████▄_______ ______█▄█████▄█_______ ______█▼▼▼▼▼█_______ _____██________ ██______ ______█▲▲▲▲▲█_______ ______█████████_______ _______██____ ██________ =_= ¯\_(ツ)_/¯ o_O */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long #define ld long double #define null NULL #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define debug(a) cerr << #a << " = " << a << endl #define forn(i, n) for (int i = 0; i < n; ++i) #define sz(a) (int)a.size() using namespace std; template int chkmax(T &a, T b) { if (b > a) { a = b; return 1; } return 0; } template int chkmin(T &a, T b) { if (b < a) { a = b; return 1; } return 0; } template void output(iterator begin, iterator end, ostream& out = cerr) { while (begin != end) { out << (*begin) << " "; begin++; } out << endl; } template void output(T x, ostream& out = cerr) { output(x.begin(), x.end(), out); } void fast_io() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); } void make_move(int pos, int len) { cout << len << " " << pos + 1 << endl; int t; cin >> t; if (t == 0 || t == 1) { exit(0); } } void read_move(int &pos, int &k) { cin >> k >> pos; pos--; } int n; signed main() { fast_io(); cin >> n; make_move((n - 1) / 2, 1 + (n % 2 == 0)); while (true) { int pos, k; read_move(pos, k); pos = n - 1 - pos - (k - 1); make_move(pos, k); } }