// C++(GCC 9.2.1)
#include <bits/stdc++.h>
using namespace std;
#define repex(i, a, b, c) for(int i = a; i < b; i += c)
#define repx(i, a, b) repex(i, a, b, 1)
#define rep(i, n) repx(i, 0, n)
#define repr(i, a, b) for(int i = a; i >= b; i--)
string ans[] = {"not coprime", "setwise coprime", "pairwise coprime"};
int a[2020202], b[2020202], c[2020202];
set<int> divisors[2020202];

int main() {
    
    // 1. 入力情報取得.
    int N;
    scanf("%d", &N);
    rep(i, N) scanf("%d", &a[i]);
    
    // 2. 素因数を取得.
    divisors[2].insert(2);
    divisors[3].insert(3);
    repx(i, 2, 2020202){
        if(b[i]) continue;
        repex(j, i * 2, 2020202, i){
            b[j]++;
            if(j % i == 0) divisors[j].insert(i);
        }
    }
    
    // 3. "pairwise coprime" であるかの判定.
    int idx = 2;
    rep(i, N){
        bool ok = false;
        for(auto &p : divisors[a[i]]){
            // 前回以前に出てきた素因数が見つかったら, 
            // "pairwise coprime" でないことが分かるので, 終了.
            if(!c[p]){
                c[p]++;
            }else{
                idx--;
                ok = !ok;
                break;
            }
        }
        if(ok) break;
    }
    
    // 4. GCD(A[1], ..., A[N]) の 計算.
    // -> gcd = 1 の 場合は, 少なくとも, "setwise coprime" になる.
    int gcd = a[0];
    repx(i, 1, N) gcd = __gcd(gcd, a[i]);
    if(gcd != 1) idx--;
    
    // 5. 出力.
    printf("%s\n", ans[idx].c_str());
    return 0;
    
}