#include <bits/stdc++.h>
using namespace std;
const long double ZERO = 1e-15;
const long double EPS = 1e-10;
const int MAXN = 100500;
const int INF9 = 2 * 1e9;
const long long INF18 = 4 * 1e18;
const long long L0 = 0;
const long double PI = acos(-1);
const long double sq2 = sqrt(2.0);
int main() {
  int n;
  cin >> n;
  vector<long long> v(n);
  for (long long i = 0; i < (n); i++) cin >> v[i];
  if (n == 1) {
    cout << "1 1" << endl << "0" << endl;
    cout << "1 1" << endl << "0" << endl;
    cout << "1 1" << endl << -v[0] << endl;
    return 0;
  }
  map<long long, long long> m;
  long long x = n - 1;
  while (m.find(x % n) == m.end()) {
    m[x % n] = x;
    x += n - 1;
  }
  cout << 1 << ' ' << n - 1 << endl;
  for (long long i = 0; i < (n - 1); i++) {
    long long d = m[(n - (v[i] % n)) % n];
    cout << d << ' ';
    v[i] += d;
  }
  cout << endl << n << ' ' << n << endl;
  cout << n - v[n - 1] << endl;
  v[n - 1] = n;
  cout << 1 << ' ' << n << endl;
  for (long long i = 0; i < (n); i++) cout << -v[i] << ' ';
  return 0;
}
