#include <iostream>//cout<<right で右揃え
#include <iomanip>//cout<<setw(数字) で空白による桁揃え
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <algorithm>
#include <cstdlib>//abs()で整数絶対値
#include <cmath>//abs()かfabs()で少数絶対値
#include <functional>//sort第三引数greater<型名>()で降順
#include <map>

using namespace std;
using ll = long long int;

int main(){
    int D[1000001];
    for(int i=1;i<1000001;i++) D[i] = i;
    for(int i=2;i<1001;i++){
        if(D[i]!=i) continue;
        int j = i + i;
        while(j <= 1000000){
            D[j] = i;
            j += i;
        }
    }
    map<int,bool> m;
    int N;cin>>N;
    vector<int> A(N);
    bool pair = true;
    for(int i=0;i<N;i++) cin >> A[i];
    for(int i=0;i<N&&pair;i++){
        int j = A[i];
        int f = D[j];
        if(m[D[j]]){
            pair = false;
            break;
        }
        else m[D[j]] = true;
        while(j!=1){
            if(f!=D[j]){
                if(m[D[j]]){
                    pair = false;
                    break;
                }
                else m[D[j]] = true;
                f = D[j];
            }
            j /= D[j];
        }
    }
    if(pair) cout << "pairwise coprime" << endl;
    else{
        int set = A[0];
        for(int i=1;i<N;i++) set = __gcd(set,A[i]);
        if(set==1) cout << "setwise coprime" << endl;
        else cout << "not coprime" << endl;
    }
    return 0;
}