output_description: If a tuple of subsets of \\{1,2,...N\\} that satisfies the conditions does not
  exist, print `No`. If such a tuple exists, print `Yes` first, then print such
  subsets in the following format:
  
      
      
      k
      |S_1| S_{1,1} S_{1,2} ... S_{1,|S_1|}
      :
      |S_k| S_{k,1} S_{k,2} ... S_{k,|S_k|}
      
  
  where S_i={S_{i,1},S_{i,2},...,S_{i,|S_i|}}.
  
  If there are multiple such tuples, any of them will be accepted.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
attempt: N = int(input())
  chk = (2 * N) ** (1 / 2)
  k = chk // 1
  if N != k * (k + 1) // 2:
      print("No")
  else:
      print("Yes")
      k = int(k)
      print(k + 1)
      ans_list = [[0 for i in range(k)] for j in range(k + 1)]
      W1 = 0
      H1 = 0
      W2 = 0
      H2 = 1
      for i in range(N):
          ans_list[H1][W1] = i + 1
          ans_list[H2][W2] = i + 1
          if H1 == W1:
              H1 = 0
              W1 = W1 + 1
              H2 = W1 + 1
              W2 = 0
          else:
              H1 += 1
              W2 += 1
      for i in range(k + 1):
          print(str(k) + " " + " ".join(str(n) for n in ans_list[i]))
  
problem_description: Statement
  
  You are given an integer N. Determine if there exists a tuple of subsets of
  \\{1,2,...N\\}, (S_1,S_2,...,S_k), that satisfies the following conditions:
  
    * Each of the integers 1,2,...,N is contained in exactly two of the sets S_1,S_2,...,S_k.
    * Any two of the sets S_1,S_2,...,S_k have exactly one element in common.
  
  If such a tuple exists, construct one such tuple.
samples: [{"input": "3", "output": "Yes\n    3\n    2 1 2\n    2 3 1\n    2 2 3\n    \n\nIt can be seen that (S_1,S_2,S_3)=(\\\\{1,2\\\\},\\\\{3,1\\\\},\\\\{2,3\\\\}) satisfies\nthe conditions.\n\n* * *"}, {"input": "4", "output": "No"}]