local bls, brs = bit.lshift, bit.rshift
local k = io.read("*n")
if k == 0 then print("2 0")
elseif k == 1 then print("2 1\n1 2")
elseif k == 2 then print("3 3\n1 2\n2 3\n1 3")
else
  local n = 2
  local mul = 1
  while mul < k do
    mul = mul * 2
    n = n + 1
  end
  local ary = {}
  for i = 2, n do
    table.insert(ary, {1, i})
  end
  for i = 3, n - 1 do
    for j = i + 1, n do
      table.insert(ary, {i, j})
    end
  end
  local rem = k - bls(1, n - 3)
  for i = 3, n - 1 do
    local v = bls(1, n - 1 - i)
    if v <= rem then
      table.insert(ary, {2, i})
      rem = rem - v
    end
  end
  if 0 < rem then
    table.insert(ary, {2, n})
  end
  print(n .. " " .. #ary)
  for i = 1, #ary do
    print(ary[i][1] .. " " .. ary[i][2])
  end
end