#include<cstdio>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<cstdlib>
#include<iomanip>
#include<queue>
#include<set>

using namespace std;

long long gcd(long long a, long long b)
{
    int m;
    
    if(a < b)
    {
        gcd(b, a);
    }
//    
//    if(b <= 0)
//    {
//        return a;
//    }
//    
//    return gcd(b, a % b);
    while(b != 0)
    {
        m = a % b;
        a = b;
        b = m;
    }
    
    return a;
    
}

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

int main()
{
    int a1, m1, a2, m2, a3, m3;
    long long x, y, z;
    
    while(cin>>a1>>m1>>a2>>m2>>a3>>m3, a1 && m1 && a2 && m2 && a3 && m3)
    {
        x = y = z = 1;
        
        for(int i = a1 % m1; i != 1; i = i * a1 % m1)
        {
            x++;
        }
        for(int i = a2 % m2; i != 1; i = i * a2 % m2)
        {
            y++;
        }
        for(int i = a3 % m3; i != 1; i = i * a3 % m3)
        {
            z++;
        }
        
        cout<<lcm(lcm(x, y), z)<<endl;
    }
    
    return 0;
}