#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int o, n;
int l[200005];
int r[200005];
int cnt[200005];
int zkw[200005];
void Anna(){
cout << 17 << endl;
for( int i=1 ; i<n ; i++ ){
int x;
cin >> x;
x++;
x+=(n-1);
int layer=17;
for( int j=(x>>1) ; j>0 ; (j>>=1) ){
if( zkw[j]+1!=cnt[j] ) break;
layer--;
}
cout << layer << endl;
zkw[x]++;
for( int j=(x>>1) ; j>0 ; (j>>=1) ){
zkw[j]=zkw[j<<1]+zkw[j<<1|1];
}
}
}
int a[100005];
vector<int> v[20];
void Bertil(){
for( int i=1 ; i<=n ; i++ ){
cin >> a[i];
v[a[i]].push_back(i);
}
int idx=1;
for( int i=1 ; i<=17 ; i++ ){
int fi=lower_bound( v[i].begin(), v[i].end(), l[idx] )-v[i].begin();
int se=lower_bound( v[i].begin(), v[i].end(), v[i][fi]+1 )-v[i].begin();
if( se>=v[i].size() || v[i][se]>r[idx] ){
if( l[idx<<1]<=v[i][fi] && v[i][fi]<=r[idx<<1] ){
idx=(idx<<1|1);
}
else{
idx=(idx<<1);
}
}
else{
cout << v[i][fi]-1 << ' ' << v[i][se]-1 << endl;
break;
}
}
}
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> o >> n;
for( int i=1 ; i<=n ; i++ ){
cnt[i+(n-1)]=1;
l[i+(n-1)]=i;
r[i+(n-1)]=i;
}
for( int i=n-1 ; i>=1 ; i-- ){
cnt[i]+=cnt[i<<1]+cnt[i<<1|1];
l[i]=l[i<<1];
r[i]=r[i<<1|1];
}
if( o==1 ) Anna();
else Bertil();
return 0;
}