direction = [(-1, -1, 0, 0), (0, -1, 1, 0), (-1, 0, 0, 1), (0, 0, 1, 1)] PX, PY = map(int, input().split()) QX, QY = map(int, input().split()) RX, RY = map(int, input().split()) PX, PY = PX+PY, PX-PY QX, QY = QX+QY, QX-QY RX, RY = RX+RY, RX-RY # 四角の範囲内か def judge(x, y, leftX, leftY, rightX, rightY): return leftX < x < rightX and leftY < y < rightY def func(PX, PY, QX, QY, RX, RY, leftX, leftY, rightX, rightY): return judge(PX, PY, leftX, leftY, rightX, rightY) or judge(QX, QY, leftX, leftY, rightX, rightY) or judge(RX, RY, leftX, leftY, rightX, rightY) leftX, leftY = min(PX, QX, RX), min(PY, QY, RY) rightX, rightY = max(PX, QX, RX), max(PY, QY, RY) if func(PX, PY, QX, QY, RX, RY, leftX, leftY, rightX, rightY): exit(print(0)) for a, b, c, d in direction: if not func(PX, PY, QX, QY, RX, RY, leftX+a, leftY+b, rightX+c, rightY+d): exit(print(-1)) diffX = rightX-leftX diffY = rightY-leftY ans = set() if diffX > diffY: if diffX%2 == 0: diff = diffX-diffY if not func(PX, PY, QX, QY, RX, RY, leftX, leftY-diff, rightX, rightY): x, y = (leftX+rightX)//2, (leftY-diff+rightY)//2 ans.add((x, y)) if not func(PX, PY, QX, QY, RX, RY, leftX, leftY, rightX, rightY+diff): x, y = (leftX+rightX)//2, (leftY+rightY+diff)//2 ans.add((x, y)) elif diffX < diffY: if diffY%2 == 0: diff = diffY-diffX if not func(PX, PY, QX, QY, RX, RY, leftX-diff, leftY, rightX, rightY): x, y = (leftX-diff+rightX)//2, (leftY+rightY)//2 ans.add((x, y)) if not func(PX, PY, QX, QY, RX, RY, leftX, leftY, rightX+diff, rightY): x, y = (leftX+rightX+diff)//2, (leftY+rightY)//2 ans.add((x, y)) else: if diffX%2 == 0: ans.add(((rightX-leftX)//2, (rightY-leftY)//2)) ans2 = [] for x, y in ans: if (x+y)%2 != 0: continue a = y c = (x-a)//2 a += c b = c ans2.append((a, b)) print(len(ans2)) for x, y in sorted(ans2): print(x, y)