#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) - 1;
cout << max(2,d+1) << "\n";
if(d>=1){
if(m>=n){
while (d--){cout << "G";
}
cout << "P";
} else {
while (d--){cout << "P";
}
cout << "G";
}
} else { cout << "GP";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IE5XRChpbnQgYSwgaW50IGIpIHsKICAgIGludCByID0gYSAlIGI7CiAgICAJd2hpbGUgKHIgIT0gMCl7CiAgICAJYSA9IGI7IGIgPSByOyByID0gYSAlIGI7CiAgICAJfQogICAgCXJldHVybiBiOwoJfQoKaW50IG1haW4oKSB7CglpbnQgbiwgbTsKCWNpbiA+PiBuID4+IG07CglpbnQgZCA9IE5XRChuLG0pIC0gMTsKCWNvdXQgPDwgbWF4KDIsZCsxKSA8PCAiXG4iOwoJaWYoZD49MSl7CgkJaWYobT49bil7CgkJCXdoaWxlIChkLS0pe2NvdXQgPDwgIkciOwoJCQl9CgkJCWNvdXQgPDwgIlAiOwoJCX0gZWxzZSB7CgkJCXdoaWxlIChkLS0pe2NvdXQgPDwgIlAiOwoJCQl9CgkJCWNvdXQgPDwgIkciOwoJCX0KCX0gZWxzZSB7IGNvdXQgPDwgIkdQIjsKCX0KCXJldHVybiAwOwp9