Problem p02961 (python)

Fixed submission:
def editarr(x,y,arr):
  if abs(x)>=abs(y):
    for i in range(len(arr)):
      arr[i][0],arr[i][1]=arr[i][1],arr[i][0]
  if x<0:
    for i in range(len(arr)):
      arr[i][0]*=-1
  if y<0:
    for i in range(len(arr)):
      arr[i][1]*=-1

k=int(input())
x,y=map(int,input().split())
ans=[]
tx=abs(x)
ty=abs(y)
if tx>=ty:
  tx,ty=ty,tx
if k%2==0 and (tx+ty)%2!=0:
  print(-1)
else:
  if tx+ty<k:
    if (tx+ty)%2==0:
      m=(ty-tx)//2
      ans.append([k-m,m])
    else:
      td=k-(tx+ty)
      ans.append([tx,ty+td])
      ans.append([tx+(k-td//2),ty+td//2])
    ans.append([tx,ty])
    n=len(ans)
  elif ty-(k-tx%k)<k and (ty-(k-tx%k))%2!=0:
    if tx<k and ty<k:
      if (2*k-(tx+ty))%2==0:
        td=2*k-(tx+ty)
        ans.append([tx+td//2,k-(tx+td//2)])
        ans.append([tx,ty])
      else:
        ans.append([tx,k-tx])
        td=ty-(k-tx)
        ans.append([tx+(k-td//2),ans[-1][1]+td//2])
        ans.append([tx,ty])
      n=len(ans)
    else:
      if tx+ty<2*k:
        if (2*k-(tx+ty))%2==0:
          td=2*k-(tx+ty)
          ans.append([tx+td//2,k-(tx+td//2)])
          ans.append([tx,ty])
        else:
          ans.append([tx,k-tx])
          td=ty-(k-tx)
          ans.append([tx+(k-td//2),ans[-1][1]+td//2])
          ans.append([tx,ty])
        n=len(ans)
      else:
        ans.append([0,0])  
  else:
    ans.append([0,0])
    for i in range(tx//k):
      ans.append([ans[-1][0]+k,0])
    if ans[-1][0]!=tx:
      ans.append([tx,k-abs(tx-ans[-1][0])])
    td=ty-ans[-1][1]
    if td%k==0:
      flag=True
    else:
      flag=False
    for i in range(td//k):
      if flag==False and (ty-ans[-1][1])%2==0 and (ty-ans[-1][1])<=2*k:
          break
      ans.append([tx,ans[-1][1]+k])
    if ans[-1][1]!=ty:
      td=ty-ans[-1][1]
      ans.append([tx+(k-td//2),ans[-1][1]+td//2])
      ans.append([tx,ty])
    ans.pop(0)
    n=len(ans)
  editarr(x,y,ans)
  print(n)
  for a,b in ans:
    print(a,b)

Buggy submission (verdict: Runtime Error):
def editarr(x,y,arr):
  if abs(x)>=abs(y):
    for i in range(len(arr)):
      arr[i][0],arr[i][1]=arr[i][1],arr[i][0]
  if x<0:
    for i in range(len(arr)):
      arr[i][0]*=-1
  if y<0:
    for i in range(len(arr)):
      arr[i][1]*=-1

k=int(input())
x,y=map(int,input().split())
ans=[]
tx=abs(x)
ty=abs(y)
if tx>=ty:
  tx,ty=ty,tx
if k%2==0 and (tx+ty)%2!=0:
  print(-1)
else:
  if tx+ty<k:
    if (tx+ty)%2==0:
      m=(ty-tx)//2
      ans.append([k-m,m])
    else:
      td=k-(tx+ty)
      ans.append([tx,ty+td])
      ans.append([tx+(k-td//2),ty+td//2])
    ans.append([tx,ty])
    n=len(ans)
  elif ty-(k-tx%k)<k and (ty-(k-tx%k))%2!=0:
    if tx<k and ty<k:
      if (2*k-(tx+ty))%2==0:
        td=2*k-(tx+ty)
        ans.append([tx+td//2,k-(tx+td//2)])
        ans.append([tx,ty])
      else:
        ans.append([tx,k-tx])
        td=ty-(k-tx)
        ans.append([tx+(k-td//2),ans[-1][1]+td//2])
        ans.append([tx,ty])
      n=len(ans)
    else:
      if tx+ty<2*k:
        if (2*k-(tx+ty))%2==0:
          td=2*k-(tx+ty)
          ans.append([tx+td//2,k-(tx+td//2)])
          ans.append([tx,ty])
        else:
          ans.append([tx,k-tx])
          td=ty-(k-tx)
          ans.append([tx+(k-td//2),ans[-1][1]+td//2])
          ans.append([tx,ty])
      n=len(ans)
      else:
        ans.append([0,0])  
  else:
    ans.append([0,0])
    for i in range(tx//k):
      ans.append([ans[-1][0]+k,0])
    if ans[-1][0]!=tx:
      ans.append([tx,k-abs(tx-ans[-1][0])])
    td=ty-ans[-1][1]
    if td%k==0:
      flag=True
    else:
      flag=False
    for i in range(td//k):
      if flag==False and (ty-ans[-1][1])%2==0 and (ty-ans[-1][1])<=2*k:
          break
      ans.append([tx,ans[-1][1]+k])
    if ans[-1][1]!=ty:
      td=ty-ans[-1][1]
      ans.append([tx+(k-td//2),ans[-1][1]+td//2])
      ans.append([tx,ty])
    ans.pop(0)
    n=len(ans)
  editarr(x,y,ans)
  print(n)
  for a,b in ans:
    print(a,b)

Buggy submission (verdict: Runtime Error):
def editarr(x,y,arr):
  if abs(x)>=abs(y):
    for i in range(len(arr)):
      arr[i][0],arr[i][1]=arr[i][1],arr[i][0]
  if x<0:
    for i in range(len(arr)):
      arr[i][0]*=-1
  if y<0:
    for i in range(len(arr)):
      arr[i][1]*=-1

k=int(input())
x,y=map(int,input().split())
ans=[]
tx=abs(x)
ty=abs(y)
if tx>=ty:
  tx,ty=ty,tx
if k%2==0 and (tx+ty)%2!=0:
  print(-1)
else:
  if tx+ty<k:
    if (tx+ty)%2==0:
      m=(ty-tx)//2
      ans.append([k-m,m])
    else:
      td=k-(tx+ty)
      ans.append([tx,ty+td])
      ans.append([tx+(k-td//2),ty+td//2])
    ans.append([tx,ty])
    n=len(ans)
  elif ty-(k-tx%k)<k and (ty-(k-tx%k))%2!=0:
    if tx<k and ty<k:
      if (2*k-(tx+ty))%2==0:
        td=2*k-(tx+ty)
        ans.append([tx+td//2,k-(tx+td//2)])
        ans.append([tx,ty])
      else:
        ans.append([tx,k-tx])
        td=ty-(k-tx)
        ans.append([tx+(k-td//2),ans[-1][1]+td//2])
        ans.append([tx,ty])
      n=len(ans)
    else:
      if tx+ty<2*k:
        ans.append([0,0])
      else:
        ans.append([0,0])  
  else:
    ans.append([0,0])
    for i in range(tx//k):
      ans.append([ans[-1][0]+k,0])
    if ans[-1][0]!=tx:
      ans.append([tx,k-abs(tx-ans[-1][0])])
    td=ty-ans[-1][1]
    if td%k==0:
      flag=True
    else:
      flag=False
    for i in range(td//k):
      if flag==False and (ty-ans[-1][1])%2==0 and (ty-ans[-1][1])<=2*k:
          break
      ans.append([tx,ans[-1][1]+k])
    if ans[-1][1]!=ty:
      td=ty-ans[-1][1]
      ans.append([tx+(k-td//2),ans[-1][1]+td//2])
      ans.append([tx,ty])
    ans.pop(0)
    n=len(ans)
  editarr(x,y,ans)
  print(n)
  for a,b in ans:
    print(a,b)

Buggy submission (verdict: Runtime Error):
def editarr(x,y,arr):
  if abs(x)>=abs(y):
    for i in range(len(arr)):
      arr[i][0],arr[i][1]=arr[i][1],arr[i][0]
  if x<0:
    for i in range(len(arr)):
      arr[i][0]*=-1
  if y<0:
    for i in range(len(arr)):
      arr[i][1]*=-1

k=int(input())
x,y=map(int,input().split())
ans=[]
tx=abs(x)
ty=abs(y)
if tx>=ty:
  tx,ty=ty,tx
if k%2==0 and (tx+ty)%2!=0:
  print(-1)
else:
  if tx+ty<k:
    if (tx+ty)%2==0:
      m=(ty-tx)//2
      ans.append([k-m,m])
    else:
      td=k-(tx+ty)
      ans.append([tx,ty+td])
      ans.append([tx+(k-td//2),ty+td//2])
    ans.append([tx,ty])
    n=len(ans)
  elif ty-(k-tx%k)<k and (ty-(k-tx%k))%2!=0:
    if tx<k and ty<k:
      if (2*k-(tx+ty))%2==0:
        td=2*k-(tx+ty)
        ans.append([tx+td//2,k-(tx+td//2)])
        ans.append([tx,ty])
    else:
      ans.append([tx,k-tx])
      td=ty-(k-tx)
      ans.append([tx+(k-td//2),ans[-1][1]+td//2])
      ans.append([tx,ty])
      if tx+ty<2k:
        ans.append([0,0])
      else:
        ans.append([0,0])        
  else:
    ans.append([0,0])
    for i in range(tx//k):
      ans.append([ans[-1][0]+k,0])
    if ans[-1][0]!=tx:
      ans.append([tx,k-abs(tx-ans[-1][0])])
    td=ty-ans[-1][1]
    if td%k==0:
      flag=True
    else:
      flag=False
    for i in range(td//k):
      if flag==False and (ty-ans[-1][1])%2==0 and (ty-ans[-1][1])<=2*k:
          break
      ans.append([tx,ans[-1][1]+k])
    if ans[-1][1]!=ty:
      td=ty-ans[-1][1]
      ans.append([tx+(k-td//2),ans[-1][1]+td//2])
      ans.append([tx,ty])
    ans.pop(0)
    n=len(ans)
  editarr(x,y,ans)
  print(n)
  for a,b in ans:
    print(a,b)

Buggy submission (verdict: Runtime Error):
def editarr(x,y,arr):
  if abs(x)>=abs(y):
    for i in range(len(arr)):
      arr[i][0],arr[i][1]=arr[i][1],arr[i][0]
  if x<0:
    for i in range(len(arr)):
      arr[i][0]*=-1
  if y<0:
    for i in range(len(arr)):
      arr[i][1]*=-1

k=int(input())
x,y=map(int,input().split())
ans=[]
tx=abs(x)
ty=abs(y)
if tx>=ty:
  tx,ty=ty,tx
if k%2==0 and (tx+ty)%2!=0:
  print(-1)
else:
  if tx+ty<k:
    if (tx+ty)%2==0:
      m=(ty-tx)//2
      ans.append([k-m,m])
    else:
      td=k-(tx+ty)
      ans.append([tx,ty+td])
      ans.append([tx+(k-td//2),ty+td//2])
    ans.append([tx,ty])
    n=len(ans)
  elif ty-(k-tx%k)<k and (ty-(k-tx%k))%2!=0:
    ans.append([0,0])
  else:
    ans.append([0,0])
    for i in range(tx//k):
      ans.append([ans[-1][0]+k,0])
    if ans[-1][0]!=tx:
      ans.append([tx,k-abs(tx-ans[-1][0])])
    td=ty-ans[-1][1]
    if td%k==0:
      flag=True
    else:
      flag=False
    for i in range(td//k):
      if flag==False and (ty-ans[-1][1])%2==0 and (ty-ans[-1][1])<=2*k:
          break
      ans.append([tx,ans[-1][1]+k])
    if ans[-1][1]!=ty:
      td=ty-ans[-1][1]
      ans.append([tx+(k-td//2),ans[-1][1]+td//2])
      ans.append([tx,ty])
    ans.pop(0)
    n=len(ans)
  editarr(x,y,ans)
  print(n)
  for a,b in ans:
    print(a,b)

Buggy submission (verdict: Runtime Error):
def editarr(x,y,arr):
  if abs(x)>=abs(y):
    for i in range(len(arr)):
      arr[i][0],arr[i][1]=arr[i][1],arr[i][0]
  if x<0:
    for i in range(len(arr)):
      arr[i][0]*=-1
  if y<0:
    for i in range(len(arr)):
      arr[i][1]*=-1

k=int(input())
x,y=map(int,input().split())
ans=[]
tx=abs(x)
ty=abs(y)
if tx>=ty:
  tx,ty=ty,tx
if k%2==0 and (tx+ty)%2!=0:
  print(-1)
else:
  if tx+ty<k:
    if (tx+ty)%2==0:
      m=(ty-tx)//2
      ans.append([k-m,m])
    else:
      td=k-(tx+ty)
      ans.append([tx,ty+td])
      ans.append([tx+(k-td//2),ty+td//2])
    ans.append([tx,ty])
    n=len(ans)
  elif ty-(k-tx%k)<k and (ty-(k-tx%k))%2!=0:
    ans.append([0,0])
  else:
    ans.append([0,0])
    for i in range(tx//k):
      ans.append([ans[-1][0]+k,0])
    if ans[-1][0]!=tx:
      ans.append([tx,k-abs(tx-ans[-1][0])])
    td=ty-ans[-1][1]
    if td%k==0:
      flag=True
    else:
      flag=False
    for i in range(td//k):
      if flag==False and (ty-ans[-1][1])%2==0 and (ty-ans[-1][1])<=2*k:
          break
      ans.append([tx,ans[-1][1]+k])
    if ans[-1][1]!=ty:
      td=t-ans[-1][1]
      ans.append([tx+(k-td//2),ans[-1][1]+td//2])
      ans.append([tx,ty])
    ans.pop(0)
    n=len(ans)
  editarr(x,y,ans)
  print(n)
  for a,b in ans:
    print(a,b)

Buggy submission (verdict: Runtime Error):
def editarr(x,y,arr):
  if abs(x)>=abs(y):
    for i in range(len(arr)):
      arr[i][0],arr[i][1]=arr[i][1],arr[i][0]
  if x<0:
    for i in range(len(arr)):
      arr[i][0]*=-1
  if y<0:
    for i in range(len(arr)):
      arr[i][1]*=-1

k=int(input())
x,y=map(int,input().split())
ans=[]
tx=abs(x)
ty=abs(y)
if tx>=ty:
  tx,ty=ty,tx
if k%2==0 and (tx+ty)%2!=0:
  print(-1)
else:
  if tx+ty<k:
    if (tx+ty)%2==0:
      m=(ty-tx)//2
      ans.append([k-m,m])
    else:
      td=k-(tx+ty)
      ans.append([tx,ty+td])
      ans.append([tx+(k-td//2),ty+td//2])
    ans.append([tx,ty])
    n=len(ans)
  elif ty-(k-tx%k)<k and (ty-(k-tx%k))%2!=0:
    td=0
  else:
    ans.append([0,0])
    for _ in range(x//k):
      ans.append([ans[-1][0]+k,0])
    if ans[-1][0]!=tx:
      ans.append([tx,k-(tx-ans[-1][0])])
    td=ty-ans[-1][1]
    if td%k==0:
      flag=True
    else:
      flag=False
    for _ in range(td//k):
      if flag==False and (ty-ans[-1][1])%2==0 and (ty-ans[-1][1])<=2*k:
        break
      ans.append([tx,ans[-1][1]+k])
    if ans[-1][1]!=ty:
      td=(ty-ans[-1][1])
      ans.append([tx+(k-td//2),ans[-1][1]+td//2])
      ans.append([tx,ty])
    ans.pop(0)
    n=len(ans)
  editarr(x,y,ans)
  print(n)
  for a,b in ans:
    print(a,b)

Buggy submission (verdict: Runtime Error):
def editarr(x,y,arr):
  if abs(x)>=abs(y):
    for i in range(len(arr)):
      arr[i][0],arr[i][1]=arr[i][1],arr[i][0]
  if x<0:
    for i in range(len(arr)):
      arr[i][0]*=-1
  if y<0:
    for i in range(len(arr)):
      arr[i][1]*=-1

k=int(input())
x,y=map(int,input().split())
ans=[]
tx=abs(x)
ty=abs(y)
if tx>=ty:
  tx,ty=ty,tx
if k%2==0 and (tx+ty)%2!=0:
  print(-1)
else:
  if tx+ty<k:
    if (tx+ty)%2==0:
      m=(ty-tx)//2
      ans.append([k-m,m])
    else:
      td=k-(tx+ty)
      ans.append([tx,ty+td])
      ans.append([tx+(k-td//2),ty+td//2])
    ans.append([tx,ty])
    n=len(ans)
  elif ty+tx%k<2*k:
    arr.append([0,0])
  else:
    ans.append([0,0])
    for _ in range(x//k):
      ans.append([ans[-1][0]+k,0])
    if ans[-1][0]!=tx:
      ans.append([tx,k-(tx-ans[-1][0])])
    td=ty-ans[-1][1]
    if td%k==0:
      flag=True
    else:
      flag=False
    for _ in range(td//k):
      if flag==False and (ty-ans[-1][1])%2==0 and (ty-ans[-1][1])<=2*k:
        break
      ans.append([tx,ans[-1][1]+k])
    if ans[-1][1]!=ty:
      td=(ty-ans[-1][1])
      ans.append([tx+(k-td//2),ans[-1][1]+td//2])
      ans.append([tx,ty])
    ans.pop(0)
    n=len(ans)
  editarr(x,y,ans)
  print(n)
  for a,b in ans:
    print(a,b)

Buggy submission (verdict: Runtime Error):
def editarr(x,y,arr):
  if abs(x)>=abs(y):
    for i in range(len(arr)):
      arr[i][0],arr[i][1]=arr[i][1],arr[i][0]
  if x<0:
    for i in range(len(arr)):
      arr[i][0]*=-1
  if y<0:
    for i in range(len(arr)):
      arr[i][1]*=-1

k=int(input())
x,y=map(int,input().split())
ans=[]
tx=abs(x)
ty=abs(y)
if tx>=ty:
  tx,ty=ty,tx
if k%2==0 and (tx+ty)%2!=0:
  print(-1)
else:
  if tx+ty<k:
    if (tx+ty)%2==0:
      m=(ty-tx)//2
      ans.append([k-m,m])
    else:
      td=k-(tx+ty)
      ans.append([tx,ty+td])
      ans.append([tx+(k-td//2),ty+td//2])
    ans.append([tx,ty])
  elif ty+tx%k<2*k:
  else:
    ans.append([0,0])
    for _ in range(x//k):
      ans.append([ans[-1][0]+k,0])
    if ans[-1][0]!=tx:
      ans.append([tx,k-ans[-1][0]])
    if (ty-ans[-1][1])%k==0:
      flag=True
    else:
      flag=False
    for _ in range((ty-ans[-1][1])//k):
      if flag==False and (ty-ans[-1][1])%2==0 and (ty-ans[-1][1])<=2*k:
        break
      ans.append([tx,ans[-1][1]+k])
    if ans[-1][1]!=ty:
      td=(ty-ans[-1][1])
      ans.append([tx+(k-td//2),ty+td//2])
      ans.append([tx,ty])
    ans.pop(0)
  editarr(x,y,ans)
  print(len(ans))
  for a,b in ans:
    print(a,b)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
tg=max(abs(x),abs(y))
ts=k-min(abs(x),abs(y))%k
if k%2==0 and d%2!=0:
  #print(-1)
  print(0)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
tg=max(abs(x),abs(y))
ts=k-min(abs(x),abs(y))%k
if k%2==0 and d%2!=0:
  print(0)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
tg=max(abs(x),abs(y))
ts=k-min(abs(x),abs(y))%k
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  elif tg-ts<k and (tg-ts)%2!=0:
    if abs(x)<=k and abs(y)<=k:
      if (2*k-d)%2==0:
        n=2
      else:
        n=3
    else:
      if abs(x)+abs(y)<=2k:
        if (2*k-d)%2==0:
          n=2
        else:
          n=2
      else:
        if (3*k-d)%2==0:
          n=3
        else:
          n=4
    ans.append((1,1))
  else:
    n=0
    ans.append((0,0))
    if abs(x)<=abs(y):
      n+=abs(x)//k
      for i in range(abs(x)//k):
        if x>=0:
          ans.append((ans[-1][0]+k,0))
        else:
          ans.append((ans[-1][0]-k,0))
      if ans[-1][0]!=x:
        n+=1
        if y>=0:
          ans.append((x,k-abs(x-ans[-1][0])))
        else:
          ans.append((x,-(k-abs(x-ans[-1][0]))))
      td=abs(y-ans[-1][1])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(y-ans[-1][1])%2==0 and abs(y-ans[-1][1])<=2*k:
          break
        else:
          n+=1
          if y>=0:
            ans.append((x,ans[-1][1]+k))
          else:
            ans.append((x,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=2
        td=abs(y-ans[-1][1])
        if y>=0:
          ans.append((x+(k-td//2),ans[-1][1]+td//2))
          ans.append((x,y))
        else:
          ans.append((x+(k-td//2),ans[-1][1]-td//2))
          ans.append((x,y))
    else:
      n+=abs(y)//k
      for i in range(abs(y)//k):
        if y>=0:
          ans.append((0,ans[-1][1]+k))
        else:
          ans.append((0,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=1
        if x>=0:
          ans.append((k-abs(y-ans[-1][1]),y))
        else:
          ans.append((-(k-abs(y-ans[-1][1])),y))
      td=abs(x-ans[-1][0])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(x-ans[-1][0])%2==0 and abs(x-ans[-1][0])<=2*k:
          break
        else:
          n+=1
          if x>=0:
            ans.append((ans[-1][0]+k,y))
          else:
            ans.append((ans[-1][0]-k,y))
      if ans[-1][0]!=x:
        n+=2
        td=abs(x-ans[-1][0])
        if x>=0:
          ans.append((ans[-1][0]+td//2,y+(k-td//2)))
          ans.append((x,y))
        else:
          ans.append((ans[-1][0]-td//2,y+(k-td//2)))
          ans.append((x,y))
    ans.pop(0)
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
tg=max(abs(x),abs(y))
ts=k-min(abs(x),abs(y))%k
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  elif tg-ts<k and (tg-ts)%2!=0:
    ans.append((1,1))
  else:
    n=0
    ans.append((0,0))
    if abs(x)<=abs(y):
      n+=abs(x)//k
      for i in range(abs(x)//k):
        if x>=0:
          ans.append((ans[-1][0]+k,0))
        else:
          ans.append((ans[-1][0]-k,0))
      if ans[-1][0]!=x:
        n+=1
        if y>=0:
          ans.append((x,k-abs(x-ans[-1][0])))
        else:
          ans.append((x,-(k-abs(x-ans[-1][0]))))
      td=abs(y-ans[-1][1])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(y-ans[-1][1])%2==0 and abs(y-ans[-1][1])<=2*k:
          break
        else:
          n+=1
          if y>=0:
            ans.append((x,ans[-1][1]+k))
          else:
            ans.append((x,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=2
        td=abs(y-ans[-1][1])
        if y>=0:
          ans.append((x+(k-td//2),ans[-1][1]+td//2))
          ans.append((x,y))
        else:
          ans.append((x+(k-td//2),ans[-1][1]-td//2))
          ans.append((x,y))
    else:
      n+=abs(y)//k
      for i in range(abs(y)//k):
        if y>=0:
          ans.append((0,ans[-1][1]+k))
        else:
          ans.append((0,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=1
        if x>=0:
          ans.append((k-abs(y-ans[-1][1]),y))
        else:
          ans.append((-(k-abs(y-ans[-1][1])),y))
      td=abs(x-ans[-1][0])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(x-ans[-1][0])%2==0 and abs(x-ans[-1][0])<=2*k:
          break
        else:
          n+=1
          if x>=0:
            ans.append((ans[-1][0]+k,y))
          else:
            ans.append((ans[-1][0]-k,y))
      if ans[-1][0]!=x:
        n+=2
        td=abs(x-ans[-1][0])
        if x>=0:
          ans.append((ans[-1][0]+td//2,y+(k-td//2)))
          ans.append((x,y))
        else:
          ans.append((ans[-1][0]-td//2,y+(k-td//2)))
          ans.append((x,y))
    ans.pop(0)
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  tg=max(abs(x),abs(y))
  ts=k-min(abs(x),abs(y))%k
  elif tg-ts<k and (tg-ts)%2!=0:
    ans.append((1,1))
  else:
    n=0
    ans.append((0,0))
    if abs(x)<=abs(y):
      n+=abs(x)//k
      for i in range(abs(x)//k):
        if x>=0:
          ans.append((ans[-1][0]+k,0))
        else:
          ans.append((ans[-1][0]-k,0))
      if ans[-1][0]!=x:
        n+=1
        if y>=0:
          ans.append((x,k-abs(x-ans[-1][0])))
        else:
          ans.append((x,-(k-abs(x-ans[-1][0]))))
      td=abs(y-ans[-1][1])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(y-ans[-1][1])%2==0 and abs(y-ans[-1][1])<=2*k:
          break
        else:
          n+=1
          if y>=0:
            ans.append((x,ans[-1][1]+k))
          else:
            ans.append((x,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=2
        td=abs(y-ans[-1][1])
        if y>=0:
          ans.append((x+(k-td//2),ans[-1][1]+td//2))
          ans.append((x,y))
        else:
          ans.append((x+(k-td//2),ans[-1][1]-td//2))
          ans.append((x,y))
    else:
      n+=abs(y)//k
      for i in range(abs(y)//k):
        if y>=0:
          ans.append((0,ans[-1][1]+k))
        else:
          ans.append((0,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=1
        if x>=0:
          ans.append((k-abs(y-ans[-1][1]),y))
        else:
          ans.append((-(k-abs(y-ans[-1][1])),y))
      td=abs(x-ans[-1][0])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(x-ans[-1][0])%2==0 and abs(x-ans[-1][0])<=2*k:
          break
        else:
          n+=1
          if x>=0:
            ans.append((ans[-1][0]+k,y))
          else:
            ans.append((ans[-1][0]-k,y))
      if ans[-1][0]!=x:
        n+=2
        td=abs(x-ans[-1][0])
        if x>=0:
          ans.append((ans[-1][0]+td//2,y+(k-td//2)))
          ans.append((x,y))
        else:
          ans.append((ans[-1][0]-td//2,y+(k-td//2)))
          ans.append((x,y))
    ans.pop(0)
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  tg=max(abs(x),abs(y))
  ts=tg-(k-min(abs(x),abs(y)))
  elif tg-ts<k and (tg-ts)%2!=0:
    ans.append((1,1))
  else:
    n=0
    ans.append((0,0))
    if abs(x)<=abs(y):
      n+=abs(x)//k
      for i in range(abs(x)//k):
        if x>=0:
          ans.append((ans[-1][0]+k,0))
        else:
          ans.append((ans[-1][0]-k,0))
      if ans[-1][0]!=x:
        n+=1
        if y>=0:
          ans.append((x,k-abs(x-ans[-1][0])))
        else:
          ans.append((x,-(k-abs(x-ans[-1][0]))))
      td=abs(y-ans[-1][1])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(y-ans[-1][1])%2==0 and abs(y-ans[-1][1])<=2*k:
          break
        else:
          n+=1
          if y>=0:
            ans.append((x,ans[-1][1]+k))
          else:
            ans.append((x,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=2
        td=abs(y-ans[-1][1])
        if y>=0:
          ans.append((x+(k-td//2),ans[-1][1]+td//2))
          ans.append((x,y))
        else:
          ans.append((x+(k-td//2),ans[-1][1]-td//2))
          ans.append((x,y))
    else:
      n+=abs(y)//k
      for i in range(abs(y)//k):
        if y>=0:
          ans.append((0,ans[-1][1]+k))
        else:
          ans.append((0,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=1
        if x>=0:
          ans.append((k-abs(y-ans[-1][1]),y))
        else:
          ans.append((-(k-abs(y-ans[-1][1])),y))
      td=abs(x-ans[-1][0])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(x-ans[-1][0])%2==0 and abs(x-ans[-1][0])<=2*k:
          break
        else:
          n+=1
          if x>=0:
            ans.append((ans[-1][0]+k,y))
          else:
            ans.append((ans[-1][0]-k,y))
      if ans[-1][0]!=x:
        n+=2
        td=abs(x-ans[-1][0])
        if x>=0:
          ans.append((ans[-1][0]+td//2,y+(k-td//2)))
          ans.append((x,y))
        else:
          ans.append((ans[-1][0]-td//2,y+(k-td//2)))
          ans.append((x,y))
    ans.pop(0)
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  elif max(abs(x),abs(y))<k+min(abs(x),abs(y))%k and (k-max(abs(x),abs(y))+min(abs(x),abs(y)))%2!=0:
    ans.append((1,1))
  else:
    n=0
    ans.append((0,0))
    if abs(x)<=abs(y):
      n+=abs(x)//k
      for i in range(abs(x)//k):
        if x>=0:
          ans.append((ans[-1][0]+k,0))
        else:
          ans.append((ans[-1][0]-k,0))
      if ans[-1][0]!=x:
        n+=1
        if y>=0:
          ans.append((x,k-abs(x-ans[-1][0])))
        else:
          ans.append((x,-(k-abs(x-ans[-1][0]))))
      td=abs(y-ans[-1][1])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(y-ans[-1][1])%2==0 and abs(y-ans[-1][1])<=2*k:
          break
        else:
          n+=1
          if y>=0:
            ans.append((x,ans[-1][1]+k))
          else:
            ans.append((x,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=2
        td=abs(y-ans[-1][1])
        if y>=0:
          ans.append((x+(k-td//2),ans[-1][1]+td//2))
          ans.append((x,y))
        else:
          ans.append((x+(k-td//2),ans[-1][1]-td//2))
          ans.append((x,y))
    else:
      n+=abs(y)//k
      for i in range(abs(y)//k):
        if y>=0:
          ans.append((0,ans[-1][1]+k))
        else:
          ans.append((0,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=1
        if x>=0:
          ans.append((k-abs(y-ans[-1][1]),y))
        else:
          ans.append((-(k-abs(y-ans[-1][1])),y))
      td=abs(x-ans[-1][0])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(x-ans[-1][0])%2==0 and abs(x-ans[-1][0])<=2*k:
          break
        else:
          n+=1
          if x>=0:
            ans.append((ans[-1][0]+k,y))
          else:
            ans.append((ans[-1][0]-k,y))
      if ans[-1][0]!=x:
        n+=2
        td=abs(x-ans[-1][0])
        if x>=0:
          ans.append((ans[-1][0]+td//2,y+(k-td//2)))
          ans.append((x,y))
        else:
          ans.append((ans[-1][0]-td//2,y+(k-td//2)))
          ans.append((x,y))
    ans.pop(0)
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  elif max(abs(x),abs(y))<k+min(abs(x),abs(y))%k:
    ans.append((1,1))
  else:
    n=0
    ans.append((0,0))
    if abs(x)<=abs(y):
      n+=abs(x)//k
      for i in range(abs(x)//k):
        if x>=0:
          ans.append((ans[-1][0]+k,0))
        else:
          ans.append((ans[-1][0]-k,0))
      if ans[-1][0]!=x:
        n+=1
        if y>=0:
          ans.append((x,k-abs(x-ans[-1][0])))
        else:
          ans.append((x,-(k-abs(x-ans[-1][0]))))
      td=abs(y-ans[-1][1])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(y-ans[-1][1])%2==0 and abs(y-ans[-1][1])<=2*k:
          break
        else:
          n+=1
          if y>=0:
            ans.append((x,ans[-1][1]+k))
          else:
            ans.append((x,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=2
        td=abs(y-ans[-1][1])
        if y>=0:
          ans.append((x+(k-td//2),ans[-1][1]+td//2))
          ans.append((x,y))
        else:
          ans.append((x+(k-td//2),ans[-1][1]-td//2))
          ans.append((x,y))
    else:
      n+=abs(y)//k
      for i in range(abs(y)//k):
        if y>=0:
          ans.append((0,ans[-1][1]+k))
        else:
          ans.append((0,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=1
        if x>=0:
          ans.append((k-abs(y-ans[-1][1]),y))
        else:
          ans.append((-(k-abs(y-ans[-1][1])),y))
      td=abs(x-ans[-1][0])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(x-ans[-1][0])%2==0 and abs(x-ans[-1][0])<=2*k:
          break
        else:
          n+=1
          if x>=0:
            ans.append((ans[-1][0]+k,y))
          else:
            ans.append((ans[-1][0]-k,y))
      if ans[-1][0]!=x:
        n+=2
        td=abs(x-ans[-1][0])
        if x>=0:
          ans.append((ans[-1][0]+td//2,y+(k-td//2)))
          ans.append((x,y))
        else:
          ans.append((ans[-1][0]-td//2,y+(k-td//2)))
          ans.append((x,y))
    ans.pop(0)
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  else:
    if abs(x)<=abs(y):
      n=0
      ans.append((0,0))
      for i in range(abs(x)//k):
        n+=1
        if x>=0:
          ans.append((ans[-1][0]+k,0))
        else:
          ans.append((ans[-1][0]-k,0))
      if ans[-1][0]!=x:
        n+=1
        if y>=0:
          ans.append((x,k-abs(x-ans[-1][0])))
        else:
          ans.append((x,-(k-abs(x-ans[-1][0]))))
      td=abs(y-ans[-1][1])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(10**6):
        if flag==False and abs(y-ans[-1][1])%2==0 and abs(y-ans[-1][1])<2*k:
          break
        if abs(y-ans[-1][1])<k:
          break
        else:
          n+=1
          if y>=0:
            ans.append((x,ans[-1][1]+k))
          else:
            ans.append((x,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=2
        td=abs(y-ans[-1][1])
        if y>=0:
          ans.append((x+(k-td//2),ans[-1][1]+td//2))
          ans.append((x,y))
        else:
          ans.append((x+(k-td//2),ans[-1][1]-td//2))
          ans.append((x,y))
    ans=ans[1:]
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  else:
    if abs(x)<=abs(y):
      n=0
      ans.append((0,0))
      for i in range(abs(x)//k):
        n+=1
        if x>=0:
          ans.append((ans[-1][0]+k,0))
        else:
          ans.append((ans[-1][0]-k,0))
      if ans[-1][0]!=x:
        n+=1
        if y>=0:
          ans.append((x,k-abs(x-ans[-1][0])))
        else:
          ans.append((x,-(k-abs(x-ans[-1][0]))))
      td=abs(y-ans[-1][1])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(y-ans[-1][1])%2==0 and abs(y-ans[-1][1])<2*k:
          break
        else:
          n+=1
          if y>=0:
            ans.append((x,ans[-1][1]+k))
          else:
            ans.append((x,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=2
        td=abs(y-ans[-1][1])
        if y>=0:
          ans.append((x+(k-td//2),ans[-1][1]+td//2))
          ans.append((x,y))
        else:
          ans.append((x+(k-td//2),ans[-1][1]-td//2))
          ans.append((x,y))
    ans=ans[1:]
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  else:
    if abs(x)<=abs(y):
      n=0
      ans.append((0,0))
      for i in range(abs(x)//k):
        n+=1
        if x>=0:
          ans.append((ans[-1][0]+k,0))
        else:
          ans.append((ans[-1][0]-k,0))
      if ans[-1][0]!=x:
        n+=1
        if y>=0:
          ans.append((x,k-abs(x-ans[-1][0])))
        else:
          ans.append((x,-(k-abs(x-ans[-1][0]))))
      td=abs(y-ans[-1][1])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(y-ans[-1][1])%2==0 and abs(y-ans[-1][1])<2*k:
          break
        else:
          n+=1
          if y>=0:
            ans.append((x,ans[-1][1]+k))
          else:
            ans.append((x,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=2
        td=abs(y-ans[-1][1])
        if y>=0:
          ans.append((x+(k-td//2),ans[-1][1]+td//2))
          ans.append((x,y))
        else:
          ans.append((x+(k-td//2),ans[-1][1]-td//2))
          ans.append((x,y))
    ans.pop(0)
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  else:
    if abs(x)<=abs(y):
      n=0
      ans.append((0,0))
      n+=abs(x)//k
      for i in range(abs(x)//k):
        if x>=0:
          ans.append((ans[-1][0]+k,0))
        else:
          ans.append((ans[-1][0]-k,0))
      if ans[-1][0]!=x:
        n+=1
        if y>=0:
          ans.append((x,k-abs(x-ans[-1][0])))
        else:
          ans.append((x,-(k-abs(x-ans[-1][0]))))
      td=abs(y-ans[-1][1])
      if td%k==0:
        flag=True
      else:
        flag=False
      for i in range(td//k):
        if flag==False and abs(y-ans[-1][1])%2==0 and abs(y-ans[-1][1])<=2*k:
          break
        else:
          n+=1
          if y>=0:
            ans.append((x,ans[-1][1]+k))
          else:
            ans.append((x,ans[-1][1]-k))
      if ans[-1][1]!=y:
        n+=2
        td=abs(y-ans[-1][1])
        if y>=0:
          ans.append((x+(k-td//2),ans[-1][1]+td//2))
          ans.append((x,y))
        else:
          ans.append((x+(k-td//2),ans[-1][1]-td//2))
          ans.append((x,y))
    ans.pop(0)
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    if y>=0:
      ans.append((x,y+td))
      ans.append((x+(k-td//2),y+td//2))
      ans.append((x,y))
    else:
      ans.append((x,y-td))
      ans.append((x+(k-td//2),y-td//2))
      ans.append((x,y))
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    ans.append((x,y+td))
    ans.append((x+(k-td//2),y+td//2))
    ans.append((x,y))
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
x,y=map(int,input().split())
d=abs(x)+abs(y)
if k%2==0 and d%2!=0:
  print(-1)
else:
  ans=[]
  if d<k and d%2==1:
    n=3
    td=k-d
    ans.append((x,y+td))
    ans.append((x+(k-td//2),y+td//2))
    ans.append((x,y))
  elif d<k and d%2==0:
    n=2
    if abs(x)>=abs(y):
      m=(abs(x)-abs(y))//2
      tk=k-m
      if x<0:
        m*=-1
      if y<0:
        tk*=-1
      ans.append((m,tk))
    else:
      m=(abs(y)-abs(x))//2
      tk=k-m
      if y<0:
        m*=-1
      if x<0:
        tk*=-1
      ans.append((tk,m))
    ans.append((x,y))
  print(n)
  for tx,ty in ans:
    print(tx,ty)

Buggy submission (verdict: Runtime Error):
k=int(input())
a,b=map(int,input().split())
ans1=[(0,0)]
ans2=[(0,0)]
for i in range(abs(b)//k):
  if b<0:
    ans1.append((0,ans1[-1][1]-k))
    ans2.append((0,ans2[-1][1]-k))
  else:
    ans1.append((0,ans1[-1][1]+k))
    ans2.append((0,ans2[-1][1]+k))
if b<0:
  ans2.append((0,ans2[-1][1]-k))
else:
  ans2.append((0,ans2[-1][1]+k))
if ans1[-1][1]!=b:
  tmp1=k-abs(b-ans1[-1][1])
  if a<0:
    tmp1*=-1
    ans1.append((tmp1,b))
  else:
    ans1.append((tmp1,b))
else:
  tmp1=0
if ans2[-1][1]!=b:
  tmp2=k-abs(b-ans2[-1][1])
  if a<0:
    tmp2*=-1
    ans2.append((tmp2,b))
  else:
    ans2.append((tmp2,b))
else:
  tmp2=0
for i in range(abs(tmp1-a)//k):
  if abs(a-ans1[-1][0])//2<=k:
    break
  if tmp1<a:
    ans1.append((ans1[-1][0]+k,b))
  else:
    ans1.append((ans1[-1][0]-k,b))
for i in range(abs(tmp2-a)//k):
  if abs(a-ans2[-1][0])//2<=k:
    break
  if tmp2<a:
    ans2.append((ans2[-1][0]+k,b))
  else:
    ans2.append((ans2[-1][0]-k,b))
if abs(a-ans1[-1][0])%2!=0 and abs(a-ans2[-1][0])%2!=0:
  print(-1)
elif abs(a-ans1[-1][0])%2!=0 and abs(a-ans2[-1][0])%2==0:
  diff2=abs(a-ans2[-1][0])//2
  if diff2*2!=k:
    if tmp2<a:
      ans2.append((ans2[-1][0]+diff2,b+(k-diff2)))
      ans2.append((a,b))
    else:
      ans2.append((ans[-1][0]-diff2,b+(k-diff2)))
      ans2.append((a,b))
  else:
    ans2.append((a,b))
  print(len(ans2)-1)
  for i in range(1,len(ans2)):
    print(ans2[i][0],ans2[i][1])
elif abs(a-ans1[-1][0])%2==0 and abs(a-ans2[-1][0])%2!=0:
  diff1=abs(a-ans1[-1][0])//2
  if diff1*2!=k:
    if tmp1<a:
      ans1.append((ans1[-1][0]+diff1,b+(k-diff1)))
      ans1.append((a,b))
    else:
      ans1.append((ans1[-1][0]-diff1,b+(k-diff1)))
      ans1.append((a,b))
  else:
    ans1.append((a,b))
  print(len(ans1)-1)
  for i in range(1,len(ans1)):
    print(ans1[i][0],ans1[i][1])
else:
  diff1=abs(a-ans1[-1][0])//2
  if diff1*2!=k:
    if tmp1<a:
      ans1.append((ans1[-1][0]+diff1,b+(k-diff1)))
      ans1.append((a,b))
    else:
      ans1.append((ans1[-1][0]-diff1,b+(k-diff1)))
      ans1.append((a,b))
  else:
    ans1.append((a,b))
  diff2=abs(a-ans2[-1][0])//2
  if diff2*2!=k:
    if tmp2<a:
      ans2.append((ans2[-1][0]+diff2,b+(k-diff2)))
      ans2.append((a,b))
    else:
      ans2.append((ans[-1][0]-diff2,b+(k-diff2)))
      ans2.append((a,b))
  else:
    ans2.append((a,b))
  if len(ans1)<=len(ans2):
    print(len(ans1)-1)
    for i in range(1,len(ans1)):
      print(ans1[i][0],ans1[i][1])
  else:
    print(len(ans2)-1)
    for i in range(1,len(ans2)):
      print(ans2[i][0],ans2[i][1])

Buggy submission (verdict: Runtime Error):
k=int(input())
a,b=map(int,input().split())
ans1=[(0,0)]
ans2=[(0,0)]
for i in range(abs(b)//k):
  if b<0:
    ans1.append((0,ans1[-1][1]-k))
    ans2.append((0,ans2[-1][1]-k))
  else:
    ans1.append((0,ans1[-1][1]+k))
    ans2.append((0,ans2[-1][1]+k))
if b<0:
  ans2.append((0,ans2[-1][1]-k))
else:
  ans2.append((0,ans2[-1][1]+k))
if ans1[-1][1]!=b:
  tmp1=k-abs(b-ans1[-1][1])
  if a<0:
    tmp1*=-1
    ans1.append((tmp1,b))
  else:
    ans1.append((tmp1,b))
else:
  tmp1=0
for i in range(abs(tmp1-a)//k):
  if abs(a-ans1[-1][0])//2<=k:
    break
  if tmp1<a:
    ans1.append((ans1[-1][0]+k,b))
  else:
    ans1.append((ans1[-1][0]-k,b))
if ans2[-1][1]!=b:
  tmp2=k-abs(b-ans2[-1][1])
  if a<0:
    tmp2*=-1
    ans2.append((tmp2,b))
  else:
    ans2.append((tmp2,b))
else:
  tmp2=0
for i in range(abs(tmp2-a)//k):
  if abs(a-ans2[-1][0])//2<=k:
    break
  if tmp2<a:
    ans2.append((ans2[-1][0]+k,b))
  else:
    ans2.append((ans2[-1][0]-k,b))
if abs(a-ans1[-1][0])%2!=0 and abs(a-ans2[-1][0])%2!=0:
  print(-1)
elif abs(a-ans1[-1][0])%2!=0 and abs(a-ans2[-1][0])%2==0:
  diff2=abs(a-ans2[-1][0])//2
  if diff2*2!=k:
    if tmp2<a:
      ans2.append((ans2[-1][0]+diff2,b+(k-diff2)))
      ans2.append((a,b))
    else:
      ans2.append((ans[-1][0]-diff2,b+(k-diff2)))
      ans2.append((a,b))
  else:
    ans2.append((a,b))
  print(len(ans2)-1)
  for i in range(1,len(ans2)):
    print(ans2[i][0],ans2[i][1])
elif abs(a-ans1[-1][0])%2==0 and abs(a-ans2[-1][0])%2!=0:
  diff1=abs(a-ans1[-1][0])//2
  if diff1*2!=k:
    if tmp1<a:
      ans1.append((ans1[-1][0]+diff1,b+(k-diff1)))
      ans1.append((a,b))
    else:
      ans1.append((ans1[-1][0]-diff1,b+(k-diff1)))
      ans1.append((a,b))
  else:
    ans1.append((a,b))
  print(len(ans1)-1)
  for i in range(1,len(ans1)):
    print(ans1[i][0],ans1[i][1])
else:
  diff1=abs(a-ans1[-1][0])//2
  if diff1*2!=k:
    if tmp1<a:
      ans1.append((ans1[-1][0]+diff1,b+(k-diff1)))
      ans1.append((a,b))
    else:
      ans1.append((ans1[-1][0]-diff1,b+(k-diff1)))
      ans1.append((a,b))
  else:
    ans1.append((a,b))
  diff2=abs(a-ans2[-1][0])//2
  if diff2*2!=k:
    if tmp2<a:
      ans2.append((ans2[-1][0]+diff2,b+(k-diff2)))
      ans2.append((a,b))
    else:
      ans2.append((ans[-1][0]-diff2,b+(k-diff2)))
      ans2.append((a,b))
  else:
    ans2.append((a,b))
  if len(ans1)<=len(ans2):
    print(len(ans1)-1)
    for i in range(1,len(ans1)):
      print(ans1[i][0],ans1[i][1])
  else:
    print(len(ans2)-1)
    for i in range(1,len(ans2)):
      print(ans2[i][0],ans2[i][1])