#include <cstdio>

int getGCD( int x, int y){
	if( y == 0 ){ return x; }
	else return getGCD( y, x % y );
}

int getLCM( int x, int y ){
	return x * y / getGCD( x, y );
}

int main( void ){
	int a1, m1, a2, m2, a3, m3;
	int x, y, z;
	int step_x, step_y, step_z;
	while( 1 ){
		scanf( "%d%d%d%d%d%d", &a1, &m1, &a2, &m2, &a3, &m3 );
		if( !( a1 | m1 | a2 | m2 | a3 | m3 ) ){ break; }
		x = 1;
		y = 1;
		z = 1;
		step_x = 0;
		step_y = 0;
		step_z = 0;
		do{
			x = a1 * x % m1;
			step_x ++;
		}while( x != 1 );
		do{
			y = a2 * y % m2;
			step_y ++;
		}while( y != 1 );
		do{
			z = a3 * z % m3;
			step_z ++;
		}while( z != 1 );
		printf( "%d\n", getLCM( getLCM( step_x, step_y ), step_z ) );
	}

	return 0;
}