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: import sys,collections as cl,bisect as bs
  sys.setrecursionlimit(100000)
  input = sys.stdin.readline
  mod = 10**9+7
  Max = sys.maxsize
  def l(): #intのlist
      return list(map(int,input().split()))
  def m(): #複数文字
      return map(int,input().split())
  def onem(): #Nとかの取得
      return int(input())
  def s(x): #圧縮
      a = []
      if len(x) == 0:
          return []
      aa = x[0]
      su = 1
      for i in range(len(x)-1):
          if aa != x[i+1]:
              a.append([aa,su])
              aa = x[i+1]
              su = 1
          else:
              su += 1
      a.append([aa,su])
      return a
  def jo(x): #listをスペースごとに分ける
      return " ".join(map(str,x))
  def max2(x): #他のときもどうように作成可能
      return max(map(max,x))
  def In(x,a): #aがリスト(sorted)
      k = bs.bisect_left(a,x)
      if k != len(a) and a[k] ==  x:
          return True
      else:
          return False
  """
  def nibu(x,n,r):
      ll = 0
      rr = r
      while True:
          mid = (ll+rr)//2
  
      if rr == mid:
          return ll
      if (ここに評価入れる):
          rr = mid
      else:
          ll = mid+1
  """
  
  n=onem()
  
  if not (n == 3 or n == 6 or (n % 2 == 2 and n >= 3):
      print(-1)
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"}]