X, Y = map(int, input().split()) # ノードの数 N = X * Y # N x N の隣接行列を作る G = [[] for _ in range(N)] M = 0 for i in range(0, N - 1, Y): # i - i + 1 - i + 2 - i + 3 ... + i + Y - 1 とパスをつなぐ for j in range(Y - 1): G[i + j].append(i + j + 1) M += 1 for i in range(0, N - 1, Y): # i - i + Y - i + 2Y とパスをつなぐ u = i v = (i + Y) % N if u > v: u, v = v, u G[u].append(v) M += 1 # 隣接行列からグラフ情報を出力する print(N, M) for i in range(N): for j in G[i]: print(i + 1, j + 1)