#include using namespace std; const int _K=50268147,_B=6082187,_P=100000007; int _X; inline int get_rand(int _l,int _r){ _X=((long long)_K*_X+_B)%_P; return _X%(_r-_l+1)+_l; } int n,m,k,seed,t; bool vis1[1000010],vis2[1000000]; int main(){ scanf("%d",&t); while (t--) { scanf("%d%d%d%d",&n,&m,&k,&seed); _X=seed; int ans1=n,ans2=m,i,j; for (i=1;i<=n;i++) vis1[i]=0; for (j=1;j<=m;j++) vis2[j]=0; for (int i=1;i<=k;++i) { int x=get_rand(1,n),y=get_rand(1,m); if (vis1[x]==0) {ans1--;vis1[x]=1;} if (vis2[y]==0) {ans2--;vis2[y]=1;} } printf("%d %d\n",ans1,ans2); } }