#include using namespace std; using ll = long long; using ull = unsigned long long; #define rep(a, b, c) for (int a = b; a < (int)c; ++a) vector xm = {-1, 1, 0, 0}; vector ym = {0, 0, 1, -1}; const ll MOD = 998244353; int main() { int n, m; cin >> n >> m; cout << n * m << " " << n * m << endl; vector> graph(n * m); rep(i, 0, n * m) { if (i < n) { graph[i].push_back(i + n); } else if (i < n * m - n) { graph[i].push_back(i + n); } else if (i < n * m - 1) { graph[i].push_back(i + 1); } else if (i == n * m - 1) { graph[i].push_back(n * m - n); } } rep(i, 0, n * m) { for (int x : graph[i]) { cout << i + 1 << " " << x + 1 << endl; } } }