#include #include using namespace std; using namespace atcoder; using ll = long long; template inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; } ll inf_ll = 9223372036854775807; #define rep(i, n) for (ll i = 0; i < (ll)(n); i++) using mint = atcoder::modint998244353; using mint1 = atcoder::modint1000000007; using Pa = std::pair; int Yes(bool x){ if(x) cout << "Yes"; else cout << "No"; cout << endl; return 0; } int main(){ ll X, Y; cin >> X >> Y; ll n = X*Y, m = X*Y; cout << n << " " << m << endl; vector G(n); rep(i, n){ if(i < X){ if(i == X-1) G[i] = 0; else G[i] = i+1; continue; } G[i] = i-X; } rep(i, n){ cout << i+1 << " " << G[i]+1 << endl; } }