#include <iostream>
using namespace std;

int gdc(int x,int y){
    int r;
    if (x<y){
        r=x;
        x=y;
        y=r;
    }
    
    while (y>0){
        r=x%y;
        x=y;
        y=r;
    }
    return x;
}


int main(){
    int i,xc,yc,zc,tx,ty,tz,at,bt,ct,dt,et,ft,txy,tyz;
    int ax,ay,az,mx,my,mz;
    cin >> ax >> mx >> ay >> my >> az >> mz;
    while (ax>0 && mx>0 && ay>0 && my>0 && az>0 && mz>0){
        xc=yc=zc=0;
        tx=ty=tz=1;
        for (i=0;xc==0||yc==0||zc==0;i++){
            tx=(tx*ax)%mx;
            ty=(ty*ay)%my;
            tz=(tz*az)%mz;
            if (tx==1 && xc==0) xc=i+1;
            if (ty==1 && yc==0) yc=i+1;
            if (tz==1 && zc==0) zc=i+1;
        }
        at=gdc(xc,yc);
        tx=xc/at;
        ty=yc/at;
        ct=tx*ty*at;
        
        bt=gdc(yc,zc);
        ty=yc/bt;
        tz=zc/bt;
        dt=ty*tz*bt;
        
        et=gdc(ct,dt);
        txy=ct/et;
        tyz=dt/et;
        ft=txy*tyz*et;
        
        cout << ft << endl;
        
        cin >> ax >> mx >> ay >> my >> az >> mz;
    }
}