import bisect import copy import decimal import fractions import heapq import itertools import math import random import sys import time from collections import Counter,deque,defaultdict from functools import lru_cache,reduce from heapq import heappush,heappop,heapify,heappushpop,_heappop_max,_heapify_max def _heappush_max(heap,item): heap.append(item) heapq._siftdown_max(heap, 0, len(heap)-1) def _heappushpop_max(heap, item): if heap and item < heap[0]: item, heap[0] = heap[0], item heapq._siftup_max(heap, 0) return item from math import gcd as GCD read=sys.stdin.read readline=sys.stdin.readline readlines=sys.stdin.readlines write=sys.stdout.write #import pypyjit #pypyjit.set_param('max_unroll_recursion=-1') #sys.set_int_max_str_digits(10**9) N=int(readline()) A=list(map(int,readline().split())) def f(a,b): if GCD(a,b)>1: return 0 return (a-1)*(b-1) ans_lst=[] if N>=4: ans=0 idx0=[i for i in range(N) if A[i]%2==0] while len(idx0)<2: idx1=[i for i in range(N) if A[i]%2] ans_lst.append(idx1[0],idx1[1]) A=[A[i] for i in range(N) if not i in idx1[:2]]+[(A[idx1[0]]-1)*(A[idx1[1]]-1)] N-=1 ans_lst.append((idx0[0],idx0[1])) for i in range(N-2): ans_lst.append((0,1)) elif N==3: ans=1<<60 ans_lst=None for i,j,k in ((0,1,2),(0,2,1),(1,2,0)): a=f(f(A[i],A[j]),A[k]) if a