#include <bits/stdc++.h>
using namespace std;
const double E = 1e-9, pi = 2 * acos(0);
const long double PI = 3.1415926535897932384626433832795029L;
vector<int> X1, Y1, X2, Y2;
void add(int x1, int y1, int x2, int y2) {
  if (x1 <= 0 or y1 <= 0 or x2 <= 0 or y2 <= 0) return;
  X1.push_back(x1);
  Y1.push_back(y1);
  X2.push_back(x2);
  Y2.push_back(y2);
}
bool solve(int testNumber) {
  long long T;
  if (scanf("%lld", &T) == EOF) return false;
  vector<int> dig;
  for (; T; T /= 6) dig.push_back(T % 6);
  reverse(dig.begin(), dig.end());
  X1.clear(), Y1.clear(), X2.clear(), Y2.clear();
  add(1, 2, 2, 2);
  add(2, 1, 2, 2);
  for (int i = 0; i < (int)dig.size(); i++) {
    int x = 2 * i + 2;
    if (i) {
      add(x + 1, x - 4, x + 1, x - 3);
      add(x + 2, x - 2, x + 2, x - 1);
      add(x - 4, x + 1, x - 3, x + 1);
      add(x - 2, x + 2, x - 1, x + 2);
      add(x, x - 2, x + 1, x - 2);
      add(x, x - 1, x + 1, x - 1);
      add(x - 2, x, x - 2, x + 1);
      add(x - 1, x, x - 1, x + 1);
    }
    add(x + 1, x - 1, x + 1, x);
    if (dig[i] % 3 != 2) add(x + 2, x - 1, x + 2, x);
    if (dig[i] < 3) add(x - 1, x + 1, x, x + 1);
    if (dig[i] % 3 == 0) add(x - 1, x + 2, x, x + 2);
  }
  int n = 2 + 2 * (int)dig.size();
  printf("%d %d\n", n, n);
  n = (int)X1.size();
  printf("%d\n", n);
  for (int i = 0; i < n; i++)
    printf("%d %d %d %d\n", X1[i], Y1[i], X2[i], Y2[i]);
  return true;
}
void init() {}
int main() {
  init();
  for (int i = 1; solve(i); i++)
    ;
  return 0;
}
