#include<bits/stdc++.h>
using namespace std;

long long gcd(long long a, long long b);
long long lcs(long long a, long long b);

int main(){
    while(1){
        long long a1,m1,a2,m2,a3,m3;
        scanf("%lld %lld %lld %lld %lld %lld",&a1,&m1,&a2,&m2,&a3,&m3);
        if(a1 == 0 && m1 == 0 && a2 == 0 && m2 == 0 && a3 == 0 && m3 == 0)break;
        long long x=1,y=1,z=1,cntx=0,cnty=0,cntz=0;
        do{
            x = (a1 * x) % m1;
            cntx++;
        }while(x != 1);
        do{
            y = (a2 * y) % m2;
            cnty++;
        }while(y != 1);
        do{
            z = (a3 * z) % m3;
            cntz++;
        }while(z != 1);
        printf("%lld\n",lcs(lcs(cntx,cnty),cntz));
    }
    return 0;
}

long long gcd(long long a, long long b){
    while(a % b != 0){
        long long temp = b;
        b = a % b;
        a = temp;
    }
    return b;
}

long long lcs(long long a, long long b){
    return a*b/gcd(a,b);
}