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

long long int search(long long int a, long long int num, long long int m, long long int time){
	long long int next = (a *num) % m;
	if (next == 1) return time;
	else return search(a, next, m, time + 1);
}

long long int gcd(long long a, long long int b){

	long long int v0 = a, v1 = b, v2 = a % b;
	while (v2 != 0) {
		v0 = v1;
		v1 = v2;
		v2 = v0 % v1;
	};
	return v1;
}

int main(void){

	long long int a1, m1, a2, m2, a3, m3;
	while (cin >> a1 >> m1 >> a2 >> m2 >> a3 >> m3, a1, m1, a2, m2, a3, m3){
		long long int num1 = search(a1, 1, m1, 1);
		long long int num2 = search(a2, 1, m2, 1);
		long long int num3 = search(a3, 1, m3, 1);

		long long int g1 = gcd(num1, num2);
		long long int g2 = gcd(num1 * num2 / g1, num3);

		cout << num1 * num2 * num3 / (g1 * g2) << endl;

	}

	return 0;
}