#include using namespace std; typedef long long ll; typedef long double ld; typedef pair Pii; typedef pair Pil; typedef pair Pll; typedef pair Pli; #define fi first #define se second const ll MOD = 1e9 + 7; const ll MOD2 = 998244353; const ll MOD3 = 1812447359; const ll INF = 1ll << 62; const double PI = 2 * asin(1); void yes() {printf("yes\n");} void no() {printf("no\n");} void Yes() {printf("Yes\n");} void No() {printf("No\n");} void YES() {printf("YES\n");} void NO() {printf("NO\n");} int N; bool visited[105]; int main(){ cin >> N; int rest = N; while (rest > 0){ bool flag = false; int L, R; for (int i = 1; i <= N; i++){ if (!visited[i]){ if (!flag) flag = true, L = i; R = i; } } if (L == R){ cout << 1 << " " << L << endl; return 0; }else if (L + 1 == R){ cout << 2 << " " << L << endl; return 0; }else{ if (rest % 2 == 1){ for (int i = L + 1; i <= N; i++){ if (!visited[i]){ visited[i] = true; cout << 1 << " " << i << endl; break; } } rest--; }else{ for (int i = L + 1; i < N; i++){ if (!visited[i] && !visited[i+1]){ cout << 2 << " " << i << endl; visited[i] = true; visited[i + 1] = true; } } rest -= 2; } int T; cin >> T; if (T != 3) return 0; int K, X; cin >> K >> X; rest -= K; for (int i = 0; i < K; i++){ visited[X + i] = true; } } } return 0; }