#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC target("sse4")
using namespace std;
const long long MX = 2e5 + 5;
const long long MOD = 1e9 + 7;
const long long INF = 1e18;
const long double PI = acos((long double)-1);
const long long xd[4] = {1, 0, -1, 0}, yd[4] = {0, 1, 0, -1};
mt19937 rng((uint32_t)chrono::steady_clock::now().time_since_epoch().count());
template <class T>
bool ckmin(T& a, const T& b) {
  return b < a ? a = b, 1 : 0;
}
template <class T>
bool ckmax(T& a, const T& b) {
  return a < b ? a = b, 1 : 0;
}
constexpr long long pct(long long x) { return __builtin_popcount(x); }
constexpr long long bits(long long x) { return 31 - __builtin_clz(x); }
template <class T>
T cdiv(T a, T b) {
  return a / b + !(a < 0 || a % b == 0);
}
long long fstTrue(function<bool(long long)> first, long long lo, long long hi) {
  hi++;
  assert(lo <= hi);
  while (lo < hi) {
    long long mid = (lo + hi) / 2;
    first(mid) ? hi = mid : lo = mid + 1;
  }
  return lo;
}
template <class T>
void remDup(vector<T>& v) {
  sort(begin(v), end(v));
  v.erase(unique(begin(v), end(v)), end(v));
}
void DBG() { cerr << "]" << endl; }
template <class H, class... T>
void DBG(H h, T... t) {
  cerr << h;
  if (sizeof...(t)) cerr << ", ";
  DBG(t...);
}
void setIn(string S) { freopen(S.c_str(), "r", stdin); }
void setOut(string S) { freopen(S.c_str(), "w", stdout); }
void setIO(string S = "") {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  if ((long long)(S).size()) {
    setIn(S + ".in"), setOut(S + ".out");
  }
}
int32_t main() {
  setIO();
  long long n;
  cin >> n;
  vector<long long> arr(n);
  for (auto& x : arr) cin >> x;
  if (n == 1) {
    for (long long i = (0); i < (3); ++i) {
      cout << 1 << " " << 1 << "\n";
      cout << -arr[0] << "\n";
      arr[i] = 0;
    }
  } else {
    cout << 1 << " " << 1 << "\n";
    cout << -arr[0] << "\n";
    cout << 2 << " " << n << "\n";
    for (long long i = (1); i < (n); ++i) cout << arr[i] * (n - 1) << " ";
    cout << "\n";
    cout << 1 << " " << n << "\n";
    cout << 0 << " ";
    for (long long i = (1); i < (n); ++i) cout << -arr[i] * n << " ";
    cout << "\n";
  }
}
