from math import ceil

K=int(input())
X,Y=map(int,input().split())
s=X+Y
t=Y-X

if K%2==1:
    if s%2==1:
        test=max(abs(s),abs(t))
        count=0
        if K>test:
            count=3
        elif K==test:
            count=1
        else:
            i=ceil((test-K)/(2*K))
            if i==0:
                count=3
            else:
                count=2*i+1
        ans=[(s,t)]
        while count>0:
            posx,posy=ans[-1]
            nposx=0;nposy=0
            if count>2:
                if posx>=0:
                    nposx=posx-K
                else:
                    nposx=posx+K
                if posy>=0:
                    nposy=posy-K
                else:
                    nposy=posy+K
            elif count==2:
                if posx>=0:
                    if 0>=posy:
                        nposx=K
                        nposy=posy+K
                    else:
                        nposx=K
                        nposy=posy-K
                else:
                    if 0>=posy:
                        nposx=-K
                        nposy=posy+K
                    else:
                        nposx=-K
                        nposy=posy-K
            else:
                nposx=nposy=0
            count-=1
            ans.append((nposx,nposy))
        print(len(ans)-1)
        ans=ans[::-1]
        for s,t in ans:
            if (s,t)!=(0,0):
                print((s-t)//2,(s+t)//2)
    else:
        test=max(abs(s),abs(t))
        count=0
        if K>test:
            count=2
        else:
            i=ceil((test)/(2*K))
            if i==1:
                count=2
            else:
                count=2*i
        ans=[(s,t)]
        while count>0:
            posx,posy=ans[-1]
            nposx=0;nposy=0
            if count>2:
                if posx>=0:
                    nposx=posx-K
                else:
                    nposx=posx+K
                if posy>=0:
                    nposy=posy-K
                else:
                    nposy=posy+K
            elif count==2:
                if posx>=0:
                    if 0>=posy:
                        nposx=K
                        nposy=posy+K
                    else:
                        nposx=K
                        nposy=posy-K
                else:
                    if 0>=posy:
                        nposx=-K
                        nposy=posy+K
                    else:
                        nposx=-K
                        nposy=posy-K
            else:
                nposx=nposy=0
            count-=1
            ans.append((nposx,nposy))
        print(len(ans)-1)
        ans=ans[::-1]
        for s,t in ans:
            if (s,t)!=(0,0):
                print((s-t)//2,(s+t)//2)
else:
    if s%2==1:
        print(-1)
    else:
        test=max(abs(s),abs(t))
        count=0
        if K>test:
            count=2
        elif K==test:
            count=1
        else:
            i=ceil((test)/(K))
            if i==1:
                count=2
            else:
                count=i
        ans=[(s,t)]
        while count>0:
            posx,posy=ans[-1]
            nposx=0;nposy=0
            if count>2:
                if posx>=0:
                    nposx=posx-K
                else:
                    nposx=posx+K
                if posy>=0:
                    nposy=posy-K
                else:
                    nposy=posy+K
            elif count==2:
                if posx>=0:
                    if 0>=posy:
                        nposx=K
                        nposy=posy+K
                    else:
                        nposx=K
                        nposy=posy-K
                else:
                    if 0>=posy:
                        nposx=-K
                        nposy=posy+K
                    else:
                        nposx=-K
                        nposy=posy-K
            else:
                nposx=nposy=0
            count-=1
            ans.append((nposx,nposy))
        print(len(ans)-1)
        ans=ans[::-1]
        for s,t in ans:
            if (s,t)!=(0,0):
                print((s-t)//2,(s+t)//2)

Measured memory_bytes: 62180