#ifdef LOCAL #define _GLIBCXX_DEBUG #endif #include #include using namespace atcoder; using namespace std; #define ll long long #define rep(i,n) for(ll i=0;i<(ll)n;i++) #define all(v) v.begin(),v.end() const ll INF = (ll)2e18; int main(){ cin.tie(0); ios::sync_with_stdio(false); ll X, Y; cin >> X >> Y; cout << X * Y << ' ' << X * Y << endl; ll N = X * Y; vector> G(N); rep(i,X){ cout << i + 1 << ' ' << (i + 1) % N + 1 << endl; } rep(i,Y-1){ rep(j,X){ cout << (i + 1) * X + j + 1 << ' ' << i * X + j + 1 << endl; } } }