#include <bits/stdc++.h>
using namespace std;
struct node {
  long long zuo, you, sum;
} tree1[1000005], tree2[1000005];
long long maps[200005];
void build1(long long l, long long r, long long x) {
  tree1[x].zuo = l;
  tree1[x].you = r;
  if (r == l) {
    tree1[x].sum = maps[r];
    return;
  }
  long long mid = (l + r) / 2;
  build1(l, mid, x * 2);
  build1(mid + 1, r, x * 2 + 1);
  tree1[x].sum = tree1[x * 2].sum + tree1[x * 2 + 1].sum;
}
long long check1(long long l, long long r, long long x) {
  if (tree1[x].zuo >= l && tree1[x].you <= r) {
    return tree1[x].sum;
  }
  long long ans = 0;
  long long mid = (tree1[x].you + tree1[x].zuo) / 2;
  if (mid >= l) ans += check1(l, r, x * 2);
  if (mid < r) ans += check1(l, r, x * 2 + 1);
  return ans;
}
int main() {
  long long a, b, c, d, i, j, k, l;
  while (~scanf("%lld", &a)) {
    if (a == 1)
      printf("1 1\n1\n");
    else {
      printf("%lld 2\n", a * 2 - 2);
      printf("1 2\n");
    }
  }
}
