#include<stdio.h>
#define MAX 1002
int main()
{
    int number,i=0,j=0,min,m,n;
    int a[MAX][4],b[MAX][2];
    scanf("%d",&number);
    fflush(stdin);
    for(i=0;i<number;i++)
    {
        for(j=0;j<4;j++)
            scanf("%d",&a[i][j]);       
    }//录入

    for(i=0;i<number;i++)
    {
        min=a[i][1]>a[i][3]?a[i][3]:a[i][1];
        for(j=min;;j++)
        {
            if(j%a[i][1]==0&&j%a[i][3]==0)//求通分的倍数
            {
                a[i][0]=j/a[i][1]*a[i][0];
                a[i][2]=j/a[i][3]*a[i][2];
                b[i][1]=j;
                b[i][0]=a[i][0]+a[i][2];
                break;
            }           
        }
    }
    for(i=0;i<number;i++)
    {      
            int r;
            m=b[i][0];
            n=b[i][1];
            r=gcd(m,n);
        printf("%d %d\n",b[i][0]/r,b[i][1]/r);

    }
    return 0;
    //,找最小公倍数通分
    //化简
    //输出每一组的结果
}
int gcd(int a,int b)
{
    int r;
    r=a%b;
    while(r!=0)
    {
        a=b;
        b=r;
        r=a%b;
    }
    return b;
}