#include <bits/stdc++.h>
int n, Sum, _K[5100], K[5100], A[5100], X[5100], Y[5100], M[5100], Cnt, Ans, t,
    Ai, _Ai;
struct pt {
  int x, y, z;
} p[201000];
bool cmp(pt a, pt b) { return a.z < b.z; }
int main() {
  int i, j;
  scanf("%d", &n);
  for (i = 0; i < n; Sum += K[i++])
    scanf("%d%d%d%d%d", K + i, A + i, X + i, Y + i, M + i);
  for (i = 0; i < n; i++) {
    Ai = A[i];
    Cnt = 0;
    for (j = 0; j < K[i]; j++) {
      _Ai = (1ll * Ai * X[i] + Y[i]) % M[i];
      if (j + 1 < K[i] && Ai > _Ai) Cnt++;
      Ai = _Ai;
    }
    if (Cnt > Ans) Ans = Cnt;
  }
  printf("%d\n", Ans);
  if (Sum > 200000) return 0;
  for (Ans++; Ans--;) {
    t = 0;
    for (i = 0; i < n; i++) {
      _Ai = Ai = A[i];
      for (; _K[i] < K[i]; _K[i]++) {
        p[t++] = (pt){i, _K[i], Ai};
        _Ai = (1ll * Ai * X[i] + Y[i]) % M[i];
        if (Ai > _Ai) {
          _K[i]++;
          break;
        }
        Ai = _Ai;
      }
      A[i] = _Ai;
    }
    std::sort(p, p + t, cmp);
    for (i = 0; i < t; i++) printf("%d %d\n", p[i].z, p[i].x + 1);
  }
  return 0;
}
