output_description: In the first line, print |s|, the length of s. In the second line, print the
  elements in s in order, with spaces in between. Any string that satisfies the
  above conditions will be accepted.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
attempt: n = int(input())
  
  factorials = [1, 1]
  for i in range(2, 40):
      factorials.append(factorials[-1] * i)
  
  patterns = []
  for i in range(2, 40):
      base = (1 << (i - 1)) - 1
      patterns.append((base, -i, 0))
      if i % 2 == 0:
          j = i // 2
          patterns.append(
              (base + factorials[i] // factorials[j] // factorials[j], -i - 2, 1)
          )
  
  patterns.sort(reverse=True)
  
  ans = []
  c = 1
  i = 0
  
  while n:
      if n >= patterns[i][0]:
          n -= patterns[i][0]
          if patterns[i][2] == 0:
              ans.extend([c] * -patterns[i][1])
              c += 1
          else:
              j = (-patterns[i][1] - 2) // 2
              ans.extend([c] * j)
              ans.append(c + 1)
              ans.extend([c] * j)
              ans.append(c + 1)
              c += 2
      else:
          i += 1
  
  print(len(ans))
  print(*ans)
  
problem_description: Statement
  
  We will call a string x _good_ if it satisfies the following condition:
  
    * Condition: x can be represented as a concatenation of two copies of another string y of length at least 1.
  
  For example, `aa` and `bubobubo` are good; an empty string, `a`, `abcabcabc`
  and `abba` are not good.
  
  Eagle and Owl created a puzzle on good strings. Find one string s that
  satisfies the following conditions. It can be proved that such a string always
  exists under the constraints in this problem.
  
    * 1 ≤ |s| ≤ 200
    * Each character of s is one of the 100 characters represented by the integers 1 through 100.
    * Among the 2^{|s|} subsequences of s, exactly N are good strings.
samples: [{"input": "7", "output": "4\n    1 1 1 1\n    \n\nThere are two good strings that appear as subsequences of s: (1,1) and\n(1,1,1,1). There are six occurrences of (1,1) and one occurrence of (1,1,1,1),\nfor a total of seven.\n\n* * *"}, {"input": "299", "output": "23\n    32 11 11 73 45 8 11 83 83 8 45 32 32 10 100 73 32 83 45 73 32 11 10"}]