#include <bits/stdc++.h>
const int MAX_N = 1e6 + 1;
const int MAX_C = 11;
const int DP_SIZE = MAX_N * MAX_C * sizeof(int);
int n;
int n_coins;
int coins[MAX_C];
int dp[MAX_N][MAX_C];
int count_ways() {
  memset(dp, 0, DP_SIZE);
  for (int j = 0; j <= n_coins; ++j) {
    dp[0][j] = 1;
  }
  for (int i = 1; i < MAX_N; ++i) {
    for (int j = 1; j <= n_coins; ++j) {
      dp[i][j] = dp[i][j - 1];
      if (coins[j - 1] <= i) {
        dp[i][j] += dp[i - coins[j - 1]][j];
      }
    }
  }
  return dp[MAX_N - 1][n_coins];
}
void solve() {
  int solution = 1;
  int lo = 1;
  int hi = 1;
  n_coins = 1;
  coins[0] = 1;
  while (solution != n) {
    ++lo;
    ++n_coins;
    hi = MAX_N - 1;
    while (lo != hi) {
      int mi = (lo + hi) >> 1;
      coins[n_coins - 1] = mi;
      solution = count_ways();
      if (solution <= n) {
        hi = mi;
      } else {
        lo = mi + 1;
      }
    }
    coins[n_coins - 1] = lo;
    solution = count_ways();
  }
}
int main() {
  std::cin >> n;
  solve();
  std::cout << MAX_N - 1 << ' ' << n_coins << std::endl;
  for (int i = 0; i < n_coins; ++i) {
    std::cout << coins[i] << ' ';
  }
  std::cout << std::endl;
  return 0;
}
