#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=