#include <stdio.h>
#define K_MAX 100
struct ant {
int X;
int Y;
int D;
} Ant[K_MAX+1];
int W, H, K, T, Dx[5]={0,1,0,-1,0}, Dy[5]={0,0,1,0,-1};
void input(void) {
int i, in1, in2, in3;
scanf("%d %d %d %d",&W,&H,&K,&T);
for(i=1 ; i<=K ; i++) {
scanf("%d %d %d",&in1,&in2,&in3);
Ant[i]={in1,in2,in3};
}
}
void output(void) {
int i, j, cnt;
for(i=1 ; i<=K ; i++) {
if(Ant[i].D%2)
cnt=T%(2*W);
else
cnt=T%(2*H);
for(j=1 ; j<=cnt ; j++) {
Ant[i].X+=Dx[Ant[i].D];
Ant[i].Y+=Dy[Ant[i].D];
if(Ant[i].X==0 || Ant[i].X==W || Ant[i].Y==0 || Ant[i].Y==H)
Ant[i].D=(Ant[i].D+1)%4+1;
}
printf("%d %d %d\n",Ant[i]);
}
}
int main(void) {
input();
output();
return 0;
}