def is_impossible(flag): if flag: print(-1);exit() A, B, C, D = map(int, input().split()) waterway = [] tmp = 2 for _ in range(A - C - 1): waterway.append((0, tmp)) tmp += 1 for _ in range(B - C - 1): waterway.append((1, tmp)) tmp += 1 if C: if A == C: join = 0 waterway.append((0, 1)) elif B == C: join = 1 waterway.append((0, 1)) else: join = tmp waterway.append((0, join)) waterway.append((1, join)) tmp += 1 for _ in range(C - 1): waterway.append((join, tmp)) tmp += 1 N = tmp is_impossible(N < 2) M = len(waterway) is_impossible(M > D) print(N, M) for w in waterway: print(*w)