#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,m,n,k;
int a[2000020];
int cnt[1010],match[330];
int mp,maxn;
struct nod{
	int l,r,num;
}nl[1000010];
int nn;
bool cmp(nod a,nod b){
	return a.l<b.l;
}
int main(){
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	cin>>t>>n>>m>>k;
	while(t--){
		for(int i=1;i<=m;i++){
			scanf("%d",&a[i]);
			if(cnt[a[i]]==0) cnt[a[i]]=i,mp++;
			else{
				nl[++nn].l=cnt[a[i]];
				nl[nn].r=i;
				nl[nn].num=a[i];
				cnt[a[i]]=0;
				mp--;
			}
			maxn=max(maxn,mp);
		}
		sort(nl+1,nl+nn+1,cmp);
		int num=0,flag=0;
		if(maxn<=n) for(int i=1;i<=m;i++){
			int id;
			if(cnt[a[i]]==0){
				cnt[a[i]]=1;
				for(int j=1;j<=n;j++){
					if(match[j]==0){
						match[j]=a[i];
						id=j;
						
						break;
					}
				}
			}
			else{
				cnt[a[i]]=0;
				for(int j=1;j<=n;j++){
					if(match[j]==a[i]){
						match[j]=0;
						id=j;
						break;
					}
				}
			}
			printf("1 %d\n",id);
		}
	}
	return 0;
}
/*
1 0
4 3 1 1
001
010
000
000

*/