n=int(input()) a,b=map(int,input().split()) l=list(map(int,input().split())) s=sum(l) d=a+b def sgn(t): if t>0:return 1 else:return -1 if s<d or s%2!=d%2 or (n==1 and s!=d): print('NO') else: print('YES') x,y=0,0 q=[(0,0)] for v in l: d=abs(a-x)+abs(b-y) u=(s-d)//2 if abs(b-y)>=v: if v<=u: x=x-v*sgn(a-x) else: x=x-u*sgn(a-x) y=y+(v-u)*sgn(b-y) elif abs(a-x)>=v: if v<=u: y=y-v*sgn(b-y) else: y=y-u*sgn(b-y) x=x+(v-u)*sgn(a-x) else: if v<=abs(a-x)+u: x=x+v*sgn(a-x) else: x=x+(abs(a-x)+u)*sgn(a-x) y=y+(v-(abs(a-x)+u))*sgn(b-y) q.append((x,y)) s-=v print('\n'.join(' '.join(str(j) for j in i) for i in q))