#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  long long n;
  cin >> n;
  long long arr[n];
  for (long long i = 0; i < n; ++i) {
    cin >> arr[i];
  }
  if (n == 1) {
    cout << 1 << " " << 1 << "\n";
    cout << 1 << "\n";
    cout << 1 << " " << 1 << "\n";
    cout << 1 << "\n";
    cout << 1 << " " << 1 << "\n";
    cout << -(arr[0] + 2) << "\n";
    return 0;
  }
  if (n == 2) {
    cout << "1"
         << " "
         << "1"
         << "\n";
    cout << n - arr[0] << "\n";
    cout << 2 << " " << 2 << "\n";
    cout << n - arr[1] << "\n";
    cout << 1 << " " << 2 << "\n";
    cout << -n << " " << -n << "\n";
    return 0;
  }
  long long dist[n];
  for (long long i = 0; i < n; ++i) {
    dist[i] = n - (arr[i] % n);
    dist[i] %= n;
  }
  vector<long long> vec;
  for (long long i = 0; i < n - 1; ++i) {
    long long X = ((n - 1) - dist[i]) % (n - 1);
    X %= (n - 1);
    X += n - 1;
    X %= (n - 1);
    long long temp = (dist[i] + n * X);
    vec.push_back(temp);
    assert(temp >= -1000000000000000000 && temp <= 1000000000000000000);
    assert(temp % (n - 1) == 0);
  }
  cout << "1 " << n - 1 << "\n";
  for (long long i = 0; i < vec.size(); ++i) {
    cout << vec[i] << " ";
    arr[i] = arr[i] + vec[i];
    assert(arr[i] % n == 0);
  }
  cout << "\n";
  cout << n << " " << n << "\n";
  cout << dist[n - 1] << "\n";
  arr[n - 1] += dist[n - 1];
  assert(arr[n - 1] % n == 0);
  cout << 1 << " " << n << "\n";
  for (long long i = 0; i < n; ++i) {
    cout << -arr[i] << " ";
    assert(arr[i] % n == 0);
  }
  cout << "\n";
  return 0;
}
