#!/usr/bin/env python3
_c, _d = input().split()
_a, _b = input().split()
a = int(_a)
b = int(_b)
c = int(_c)
d = int(_d)

s = 1
initialIter = 0

while s < a+b:
	s = s * (c+d)
	initialIter = initialIter + 1

next_idx = 0
splitters = []
cur = [s]
nextc = []
r = s-(a+b)

for i in range(initialIter):
	nextc = []
	for v in cur:
		vl = (v//(c+d))*c
		vr = (v//(c+d))*d
		tl = -3
		tr = -3
		if a >= vl:
			a = a - vl
			tl = -1
		elif b >= vl:
			b = b - vl
			tl = -2
		elif r >= vl:
			r = r - vl
			tl = 0
		else:
			nextc.append(vl)
			tl = next_idx
			next_idx = next_idx+1
		if a >= vr:
			a = a - vr
			tr = -1
		elif b >= vr:
			b = b - vr
			tr = -2
		elif r >= vr:
			r = r - vr
			tr = 0
		else:
			nextc.append(vr)
			tr = next_idx
			next_idx = next_idx+1
		splitters.append((tl, tr))
	cur = nextc

while len(cur) != 0:
	a = a*(c+d)
	b = b*(c+d)
	r = r*(c+d)
	nextc = []
	for v in cur:
		vl = v*c
		vr = v*d
		tl = -3
		tr = -3
		if a >= vl:
			a = a - vl
			tl = -1
		elif b >= vl:
			b = b - vl
			tl = -2
		elif r >= vl:
			r = r - vl
			tl = 0
		else:
			nextc.append(vl)
			tl = next_idx
			next_idx = next_idx+1
		if a >= vr:
			a = a - vr
			tr = -1
		elif b >= vr:
			b = b - vr
			tr = -2
		elif r >= vr:
			r = r - vr
			tr = 0
		else:
			nextc.append(vr)
			tr = next_idx
			next_idx = next_idx+1
		splitters.append((tl,tr))
	cur = nextc

print(len(splitters))
for splitter in splitters:
	l, r = splitter
	print(l, r)
