#include <iostream>
#include <fstream>
#include <algorithm>
#include <cassert>
#include <cctype>
#include <complex>
#include <cstdio>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;

#define rep(i,n) for(int i=0;i<n;i++)
typedef long long ll;

int a[3],m[3],t[3];

ll gcd(ll a,ll b){
	if(!b)return a;
	return gcd(b,a%b);
}

int main(){
	while(cin>>a[0]>>m[0]>>a[1]>>m[1]>>a[2]>>m[2]&&a[0]){
		rep(i,3){
			int p=1,c=0;
			while(1){
				p=(a[i]*p)%m[i];
				c++;
				if(p==1)break;
			}
			t[i]=c;
		}
		ll T=t[0]*t[1]/gcd((ll)t[0],(ll)t[1]);
		cout<<T*t[2]/gcd((ll)T,(ll)t[2])<<endl;
	}
}