OI XXXIII - laz

// https://szkopul.edu.pl/problemset/problem/0zPKHCR0LnWRqx-IQl07R3HC/site/?key=statement

// Łazik kosmiczny

#include <bits/stdc++.h>

// using namespace std;

// #define GARY_DBG
#define GARY_LIB

#define int long long

constexpr int sizik = 1000 * 1001;

#define ar std::array
#define pr std::pair
#define vec std::vector

typedef vec<vec<int>> _kra;

void solve() {
    int n, m;
    std::cin >> n >> m;

    if (n == 1) {
        std::cout << "1\nP\n";
        return;
    }

    if (m == 1) {
        std::cout << "1\nD\n";
        return;
    }

    int g = std::gcd(n, m);

    if (g == 1) {
        std::cout << "2\nPD\n";
        return;
    }

    int p = -1;
    for (int i = 1; i < g; i++) {
        if (std::gcd(m, i) == 1 && std::gcd(n, g - i) == 1) {
            p = i;
            break;
        }
    }

    if (p == -1) {
        std::cout << g << '\n';
        std::string s1 = "DDDDDPGGPPPGLGPP";
        std::string s2 = "LLLLLGPPGGGPDPGG";
        std::string s3 = "DDDDDDDDDDDDDDDDDPDLDP";
        std::string s4 = "LLLLLLLLLLLLLLLLLGLDLG";
        if (g == 16) {
            if (n % 5 == 0) {
                std::cout << s1 << '\n';
            } else {
                std::cout << s2 << '\n';
            }
        } else if (g == 22) {
            if (n % 5 == 0) {
                std::cout << s3 << '\n';
            } else {
                std::cout << s4 << '\n';
            }
        }
        return;
    }

    std::cout << g << '\n';
    for (int i = 0; i < p; i++) {
        std::cout << "P";
    }
    for (int i = p; i < g; i++) {
        std::cout << "D";
    }
    std::cout << '\n';
}

int32_t main() {
#ifndef GARY_DBG
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);
#endif

    int t = 1;
    // std::cin >> t;

    for (; t > 0; t--) {
        solve();
    }

    return 0;
}