#include <bits/stdc++.h>
using namespace std;
template <typename T, typename U>
inline void smin(T &a, const U &b) {
  if (a > b) a = b;
}
template <typename T, typename U>
inline void smax(T &a, const U &b) {
  if (a < b) a = b;
}
template <class T>
inline void gn(T &first) {
  char c, sg = 0;
  while (c = getchar(), (c > '9' || c < '0') && c != '-')
    ;
  for ((c == '-' ? sg = 1, c = getchar() : 0), first = 0; c >= '0' && c <= '9';
       c = getchar())
    first = (first << 1) + (first << 3) + c - '0';
  if (sg) first = -first;
}
template <class T1, class T2>
inline void gn(T1 &x1, T2 &x2) {
  gn(x1), gn(x2);
}
int power(int a, int b, int m, int ans = 1) {
  for (; b; b >>= 1, a = 1LL * a * a % m)
    if (b & 1) ans = 1LL * ans * a % m;
  return ans;
}
int main() {
  ios_base::sync_with_stdio(0);
  long long T;
  cin >> T;
  int n = 50;
  cout << n << ' ' << n << endl;
  int cnt = 2 * (2 * n - 8);
  for (int i = 0; i < n - 5; i++) {
    printf("%d %d %d %d\n", i + 5, i + 1, i + 6, i + 1);
    printf("%d %d %d %d\n", i + 1, i + 5, i + 1, i + 6);
  }
  for (int i = 0; i < n - 4; i++) {
    printf("%d %d %d %d\n", i + 4, i + 1, i + 4, i + 2);
    printf("%d %d %d %d\n", i + 1, i + 4, i + 2, i + 4);
  }
  printf("%d %d %d %d\n", n - 1, n - 1, n - 1, n);
  printf("%d %d %d %d\n", n - 1, n - 1, n, n - 1);
  for (int i = 0; i < n - 2; i++, T /= 3) {
    int k = T % 3;
    if (k < 1)
      printf("%d %d %d %d\n", min(n - 1, i + 3), i + 1, min(n, i + 4), i + 1),
          cnt++;
    if (k < 2)
      printf("%d %d %d %d\n", i + 1, min(n - 1, i + 3), i + 1, min(n, i + 4)),
          cnt++;
  }
  cout << cnt << endl;
  return 0;
}
