func_code_string: #include <bits/stdc++.h>   using namespace std;   double EPS = 1e-9;   int INF = 2000000000;   long long INFF = 8000000000000000000LL;   double PI = acos(-1);   int dirx[8] = {-1, 0, 0, 1, -1, -1, 1, 1};   int diry[8] = {0, 1, -1, 0, -1, 1, -1, 1};   inline string IntToString(int a) {     char x[100];     sprintf(x,  %d , a);     string s = x;     return s;   }   inline int StringToInt(string a) {     char x[100];     int res;     strcpy(x, a.c_str());     sscanf(x,  %d , &res);     return res;   }   inline string GetString(void) {     char x[1000005];     scanf( %s , x);     string s = x;     return s;   }   inline string uppercase(string s) {     int n = (int)s.size();     for (int(i) = (0); (i) < (n); ++(i))       if (s[i] >=  a  && s[i] <=  z ) s[i] = s[i] -  a  +  A ;     return s;   }   inline string lowercase(string s) {     int n = (int)s.size();     for (int(i) = (0); (i) < (n); ++(i))       if (s[i] >=  A  && s[i] <=  Z ) s[i] = s[i] -  A  +  a ;     return s;   }   inline void OPEN(string s) {     freopen((s +  .in ).c_str(),  r , stdin);     freopen((s +  .out ).c_str(),  w , stdout);   }   int k, n = 500;   int sisa[1005];   void process(int a, int b) {     sisa[a] = k - 1;     for (int(i) = (a + 1); (i) <= (b); ++(i)) sisa[i] = k;     for (int(i) = (a); (i) <= (b); ++(i)) {       vector<pair<int, int> > besar;       for (int(j) = (i + 1); (j) <= (b); ++(j))         if (i != j) besar.push_back(make_pair(sisa[j], j));       sort(besar.begin(), besar.end());       reverse(besar.begin(), besar.end());       for (int(j) = (0); (j) < (sisa[i]); ++(j)) {         printf( %d %d n , i, besar[j].second);         --sisa[besar[j].second];       }       sisa[i] = 0;     }   }   int main() {     scanf( %d , &k);     if (k == 1) {       puts( YES );       puts( 2 1 );       puts( 1 2 );       return 0;     }     if (k % 2 == 0) {       puts( NO );       return 0;     }     puts( YES );     printf( %d %d n , n, (k * n) / 2);     process(1, n / 2 - 1);     process(n / 2, n);     printf( %d %d n , 1, n / 2);     return 0;   }   