Problem:
Score : 500 points

Problem Statement

We have N integers. The i-th number is A_i.

\{A_i\} is said to be pairwise coprime when GCD(A_i,A_j)=1 holds for every pair (i, j) such that 1\leq i < j \leq N.

\{A_i\} is said to be setwise coprime when \{A_i\} is not pairwise coprime but GCD(A_1,\ldots,A_N)=1.

Determine if \{A_i\} is pairwise coprime, setwise coprime, or neither.

Here, GCD(\ldots) denotes greatest common divisor.

Constraints

2 \leq N \leq 10^6

1 \leq A_i\leq 10^6

Input

Input is given from Standard Input in the following format:

N
A_1 \ldots A_N

Output

If \{A_i\} is pairwise coprime, print pairwise coprime; if \{A_i\} is setwise coprime, print setwise coprime; if neither, print not coprime.

Sample Input 1

3
3 4 5

Sample Output 1

pairwise coprime

GCD(3,4)=GCD(3,5)=GCD(4,5)=1, so they are pairwise coprime.

Sample Input 2

3
6 10 15

Sample Output 2

setwise coprime

Since GCD(6,10)=2, they are not pairwise coprime. However, since GCD(6,10,15)=1, they are setwise coprime.

Sample Input 3

3
6 10 16

Sample Output 3

not coprime

GCD(6,10,16)=2, so they are neither pairwise coprime nor setwise coprime.

Solution in Common Lisp (SBCL 2.0.3) (judge verdict: Runtime Error)

;エラトステネスの篩
(defun sieve (N)
  (if (<= N 1) nil
      (loop with lst = (cons 2 (loop for x from 3 to N by 2 collect x))
            and max = (isqrt N) and p1
            initially (setf p1 lst) 
            if (or (null (cdr p1)) (< max (car p1))) return lst
            do (loop with p2 = p1 while (cdr p2) 
                     if (zerop (mod (cadr p2) (car p1))) do (rplacd p2 (cddr p2))
                     do (setf p2 (cdr p2)))
            do (setf p1 (cdr p1)))))

(defun solve (N)
  (loop for x in (sieve N)
        with lst = (loop repeat N collect (read))
        if (< 1 (loop for y in lst count (zerop (mod y x))))
        return (if (= 1 (apply #'gcd lst)) "setwise coprime" "not coprime")
        finally (return "pairwise coprime")))

(princ (solve (read)))