#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
long long n;
vector<pair<pair<int, int>, pair<int, int>>> ans;
void add(int x, int y, int z) {
  if (x <= 0 || y <= 0) return;
  if (x > 50 || y > 50) return;
  if (z == 0) {
    if (y + 1 > 50) return;
    ans.emplace_back(make_pair(x, y), make_pair(x, y + 1));
  } else {
    if (x + 1 > 50) return;
    ans.emplace_back(make_pair(x, y), make_pair(x + 1, y));
  }
}
int main() {
  int i, j, k, l;
  cin >> n;
  vector<int> v;
  for (i = 0; i < 24; i++) {
    v.push_back(n % 6);
    n /= 6;
  }
  reverse((v).begin(), (v).end());
  ans.emplace_back(make_pair(1, 2), make_pair(2, 2));
  ans.emplace_back(make_pair(2, 1), make_pair(2, 2));
  for (i = 0; i < 24; i++) {
    int x = (i + 1) * 2;
    add(x - 2, x + 3, 1);
    add(x - 1, x + 1, 1);
    add(x, x + 2, 0);
    add(x + 1, x + 2, 0);
    add(x, x + 4, 1);
    add(x + 2, x, 1);
    add(x + 2, x + 1, 1);
    add(x + 3, x - 2, 0);
    add(x + 4, x, 0);
    if (v[i] < 3) add(x + 1, x - 1, 0);
    if (v[i] % 3 == 0) add(x + 2, x - 1, 0);
    if (v[i] % 3 != 2) add(x - 1, x + 2, 1);
  }
  cout << "50 50\n";
  cout << ans.size() << endl;
  for (auto e : ans)
    printf("%d %d %d %d\n", e.first.first, e.first.second, e.second.first,
           e.second.second);
  return 0;
}
