← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var n int
	fmt.Fscan(in, &n)
	a := make([]int64, n)
	for i := 0; i < n; i++ {
		fmt.Fscan(in, &a[i])
	}

	if n == 1 {
		fmt.Fprintln(out, "1 1")
		fmt.Fprintln(out, 0)
		fmt.Fprintln(out, "1 1")
		fmt.Fprintln(out, 0)
		fmt.Fprintln(out, "1 1")
		fmt.Fprintln(out, -a[0])
		return
	}

	// Operation 1: make a[0..n-2] divisible by n
	fmt.Fprintf(out, "1 %d\n", n-1)
	for i := 0; i < n-1; i++ {
		rem := ((a[i]%int64(n) + int64(n)) % int64(n))
		add := int64(n-1) * rem
		if i > 0 {
			fmt.Fprint(out, " ")
		}
		fmt.Fprint(out, add)
		a[i] += add
	}
	fmt.Fprintln(out)

	// Operation 2: zero out first n-1 elements
	fmt.Fprintf(out, "1 %d\n", n)
	for i := 0; i < n-1; i++ {
		if i > 0 {
			fmt.Fprint(out, " ")
		}
		fmt.Fprint(out, -a[i])
		a[i] = 0
	}
	if n-1 > 0 {
		fmt.Fprint(out, " ")
	}
	fmt.Fprintln(out, 0)

	// Operation 3: zero out the last element
	fmt.Fprintf(out, "%d %d\n", n, n)
	fmt.Fprintln(out, -a[n-1])
}