#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  char ch = getchar();
  long long s = 0, w = 1;
  while (ch < '0' || ch > '9') {
    if (ch == '-') w = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    s = s * 10 + ch - '0';
    ch = getchar();
  }
  return s * w;
}
long long n;
long long p[100010], q[100010], a[100010], vis[100010], val[100010];
int main() {
  n = read();
  for (register long long i = 1; i <= n; i++)
    a[i] = val[i] = read(), a[i] %= n, a[i] = (a[i] + n) % n;
  if (n == 1) {
    puts("1 1");
    printf("%lld\n", -val[1]);
    puts("1 1\n0\n1 1\n0");
    return 0;
  }
  long long t = n - 1, v = n - 1;
  for (register long long i = 1; i <= 1e9; i++) {
    p[(n - t) % n] = i;
    q[i] = v;
    vis[t] = 1;
    t = (t + (n - 1)) % n, v += n - 1;
    if (vis[t]) break;
  }
  printf("%lld %lld\n", 1LL, n - 1);
  for (register long long i = 1; i <= n - 1; i++)
    printf("%lld ", q[p[a[i]]]), val[i] += q[p[a[i]]];
  puts("");
  printf("%lld %lld\n", 2LL, n);
  for (register long long i = 2; i <= n - 1; i++) printf("0 ");
  printf("%lld\n", q[p[a[n]]]);
  val[n] += q[p[a[n]]];
  printf("%lld %lld\n", 1LL, n);
  for (register long long i = 1; i <= n; i++) printf("%lld ", -val[i]);
  puts("");
  return 0;
}
