#include <bits/stdc++.h>
using namespace std;
int n, top;
long long N;
struct str {
  int x1, y1, x2, y2;
  void print() { printf("%d %d %d %d\n", x1, y1, x2, y2); }
} ans[310];
void print(int x1, int y1, int x2, int y2) {
  if (x1 > n || y1 > n || x2 > n || y2 > n) return;
  if (x1 < 1 || y1 < 1 || x2 < 1 || y2 < 1) return;
  ans[++top] = (str){x1, y1, x2, y2};
}
int main() {
  cin >> N;
  n = 49;
  for (int x = 3, y = 1; x <= n && y <= n; x += 2, y += 2) {
    if (x + 1 <= n && y != 1) print(x, y, x + 1, y);
    if (x + 1 <= n && y + 1 <= n) print(x, y + 1, x + 1, y + 1);
  }
  for (int x = 1, y = 3; x <= n && y <= n; x += 2, y += 2) {
    if (y + 1 <= n && x != 1) print(x, y, x, y + 1);
    if (x + 1 <= n && y + 1 <= n) print(x + 1, y, x + 1, y + 1);
  }
  for (int x = 2, y = 6; x <= n && y - 1 <= n; x += 2, y += 2) {
    print(x - 1, y - 1, x, y - 1);
    print(x - 1, y, x, y);
  }
  for (int y = 2, x = 6; x - 1 <= n && y <= n; x += 2, y += 2) {
    print(x - 1, y - 1, x - 1, y);
    print(x, y - 1, x, y);
  }
  for (int x = n - 1, y = n - 1; x > 3 && y > 3; x -= 2, y -= 2) {
    int v = (int)(N % 6LL);
    if (!v) {
      print(x - 2, y, x - 1, y);
      print(x - 2, y + 1, x - 1, y + 1);
      print(x, y - 2, x, y - 1);
      print(x + 1, y - 2, x + 1, y - 1);
    } else if (v == 1) {
      print(x - 2, y, x - 1, y);
      print(x, y - 2, x, y - 1);
      print(x + 1, y - 2, x + 1, y - 1);
    } else if (v == 2) {
      print(x - 2, y, x - 1, y);
      print(x, y - 2, x, y - 1);
    } else if (v == 3) {
      print(x - 2, y + 1, x - 1, y + 1);
      print(x, y - 2, x, y - 1);
      print(x + 1, y - 2, x + 1, y - 1);
    } else if (v == 4) {
      print(x, y - 2, x, y - 1);
      print(x + 1, y - 2, x + 1, y - 1);
    } else {
      print(x, y - 2, x, y - 1);
    }
    N /= 6LL;
  }
  if (!N) {
    print(2, 3, 3, 3);
    print(3, 2, 3, 3);
  } else {
    print(2, 3, 3, 3);
    print(2, 2, 3, 2);
  }
  printf("%d %d\n", n, n);
  for (printf("%d\n", top); top; top--) ans[top].print();
  return 0;
}
