#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

long long gcd(long long m, long long n)
{
	if (n == 0) return m;
	return gcd(n,m%n);
}



int main()
{
	int a1, a2, a3, m1, m2, m3, x, y, z;
	while (1)
	{
		cin >> a1 >> m1 >> a2 >> m2 >> a3 >> m3;
		if ((a1 | m1 | a2 | m2 | a3 | m3) == 0) { break; }

		long long cntx = 1, cnty = 1, cntz = 1, ans;
		x = a1 % m1;
		y = a2 % m2;
		z = a3 % m3;

		while (x != 1)
		{
			x = (a1 * x) % m1;
			cntx++;
		}
		while (y != 1)
		{
			y = (a2 * y) % m2;
			cnty++;
		}
		while (z != 1)
		{
			z = (a3 * z) % m3;
			cntz++;
		}

		ans = cntx * cnty / gcd(cntx, cnty);		//????????????????????°???????°???¬?????°????±???????
		ans = ans * cntz / gcd(ans, cntz);
		cout << ans << endl;
	}


	return 0;
}