#include using namespace std; typedef long long ll; #define REP(i, x, y) for (auto i = (x); i < (y); i++) #define RREP(i, x, y) for (auto i = (y) - 1; (x) <= i; i--) #define ALL(x) (x).begin(), (x).end() #pragma GCC optimize("O3") int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); ll X; cin >> X; if(X == 1){ cout << "2\n1 2\nb g\n"; return 0; } vector m; REP(i, 2, 200000){ while(X % i == 0){ m.push_back(i); X /= i; } } if(X != 1){ cout << -1 << "\n"; return 0; } ll sum = 0; for(auto v: m){ sum += v; } if(200000 < ssize(m) + sum){ cout << -1 << "\n"; return 0; } cout << ssize(m) + sum << "\n"; REP(i, 1, ssize(m)){ cout << i << " " << i+1 << "\n"; } int idx = ssize(m) + 1; REP(i, 0, ssize(m)){ REP(j, 0, m[i]){ cout << i+1 << " " << idx << "\n"; idx++; } } REP(i, 0, ssize(m)){ cout << "b "; } REP(i, 0, sum){ cout << "g "; } cout << "\n"; return 0; } /* File : ~/yukicoder/midoriika_3rd/K.cpp Date : 2024/10/12 Time : 16:02:23 */