#include<stdio.h>
template<class T>
T LCM(T x, T y)
{
	T z;
	while( (z=x%y) != 0)
	{
		x = y;
		y = z;
	}
	return y;
}
template<class T>
T GCD(T x,T y)
{
	return x/LCM(x,y)*y;
}
int main()
{
	int a1,a2,a3,m1,m2,m3,i,j;
	while(scanf("%d%d%d%d%d%d",&a1,&m1,&a2,&m2,&a3,&m3), a1)
	{
		int c1,c2,c3;
		int v1,v2,v3;
		for(v1 = a1, c1 = 1; v1 != 1; ++c1)
			v1 = (v1*a1 % m1);
		for(v2 = a2, c2 = 1; v2 != 1; ++c2)
			v2 = (v2*a2 % m2);
		for(v3 = a3, c3 = 1; v3 != 1; ++c3)
			v3 = (v3*a3 % m3);
		printf("%d\n", GCD(c1, GCD(c2,c3)) );
	}
	return 0;
}