#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