#include <iostream>
#include <vector>

int main() {
  int N;
  std::cin >> N;

  int s=0;
  int t=1;
  std::vector<std::vector<int>> S(2);

  for (int i=0; i<N; i++) {
    if (s < t) {
      S[s].push_back(i+1);
      S[t].push_back(i+1);
      s++;
    } else {
      S[0].push_back(i+1);
      S.push_back({i+1});
      s=1;
      t++;
    }
  }

  // std::cerr << s << ' ' << t << std::endl;

  if (s == t) {
    std::cout << "Yes" << '\n';
    std::cout << S.size() << '\n';
    for (auto const& s : S) {
      std::cout << s.size();
      for (auto t: s) {
        std::cout << ' ' << t;
      }
      std::cout << '\n';
    }
  } else {
    std::cout << "No" << '\n';
  }

  return 0;
}
