m=1000
t=50
id=-1
def g():
 global id
 id+=1
 return id
e=[]
rs=[]
for _ in range(m):
 i=g();rs+=[i]
 for _ in range(t):j,k=g(),g();e+=[(i,j),(j,k)]
while len(rs)>1:
 nrs=[]
 for l in range(0,len(rs),t-2):
  r=min(len(rs),l+t-2)
  p=g();nrs+=[p]
  for i in rs[l:r]:e+=[(p,i)]
 rs=nrs
n=g()
assert len(e)==n-1
print(n)
for u,v in e:print(u+1,v+1)