#include <iostream>
using namespace std;
int NWD(int a, int b){
int r = a % b;
while(r != 0){
a = b;
b = r;
r = a % b;
}
return b;
}
int main(){
int n, m;
cin >> n >> m;
int d = NWD(n, m);
cout << max(2, d) << "\n";
int x = -1, y = -1;
for(int i = 1; i < d; ++i){
int j = d - i;
if(NWD(i, n) == 1 && NWD(j, m) == 1){
x = i;
y = j;
break;
}
}
if(d == 1){
cout << "GP";
} else {
cout << string(x, 'G');
cout << string(y, 'P');
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IE5XRChpbnQgYSwgaW50IGIpewogICAgaW50IHIgPSBhICUgYjsKICAgIHdoaWxlKHIgIT0gMCl7CiAgICAgICAgYSA9IGI7CiAgICAgICAgYiA9IHI7CiAgICAgICAgciA9IGEgJSBiOwogICAgfQogICAgcmV0dXJuIGI7Cn0KCmludCBtYWluKCl7CiAgICBpbnQgbiwgbTsKICAgIGNpbiA+PiBuID4+IG07CiAgICBpbnQgZCA9IE5XRChuLCBtKTsKICAgIGNvdXQgPDwgbWF4KDIsIGQpIDw8ICJcbiI7CiAgICBpbnQgeCA9IC0xLCB5ID0gLTE7CiAgICBmb3IoaW50IGkgPSAxOyBpIDwgZDsgKytpKXsKICAgICAgICBpbnQgaiA9IGQgLSBpOwogICAgICAgIGlmKE5XRChpLCBuKSA9PSAxICYmIE5XRChqLCBtKSA9PSAxKXsKICAgICAgICAgICAgeCA9IGk7CiAgICAgICAgICAgIHkgPSBqOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBpZihkID09IDEpewogICAgICAgIGNvdXQgPDwgIkdQIjsKICAgIH0gZWxzZSB7CiAgICAgICAgY291dCA8PCBzdHJpbmcoeCwgJ0cnKTsKICAgICAgICBjb3V0IDw8IHN0cmluZyh5LCAnUCcpOwogICAgfQogICAgcmV0dXJuIDA7Cn0=