//Use valgrind once if the submission doesn't go through. It can detect uninitialized variables and see where they could be an issue.
#include <bits/stdc++.h>
#include <numeric>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;
template <typename T> using ordered_set =  tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

int main(){

	ios_base::sync_with_stdio(false);
    	cin.tie(NULL);

	int primes[]={2 ,3 ,5 ,7 ,11 ,13 ,17 ,19 ,23,29 ,31 ,37 ,41 ,43 ,47 ,53 ,59 ,61 ,67,71 ,73 ,79 ,83 ,89 ,97 ,101 ,103 ,107 ,109,113 ,127 ,131 ,137 ,139 ,149 ,151 ,157 ,163 ,167,173 ,179 ,181 ,191 ,193 ,197 ,199 ,211 ,223 ,227,229 ,233 ,239 ,241 ,251 ,257 ,263 ,269 ,271 ,277,281 ,283 ,293 ,307 ,311 ,313 ,317 ,331 ,337 ,347,349 ,353 ,359 ,367 ,373 ,379 ,383 ,389 ,397 ,401,409 ,419 ,421 ,431 ,433 ,439 ,443 ,449 ,457 ,461,463 ,467 ,479 ,487 ,491 ,499 ,503 ,509 ,521 ,523,541 ,547 ,557 ,563 ,569 ,571 ,577 ,587 ,593 ,599,601 ,607 ,613 ,617 ,619 ,631 ,641 ,643 ,647 ,653,659 ,661 ,673 ,677 ,683 ,691 ,701 ,709 ,719 ,727,733 ,739 ,743 ,751 ,757 ,761 ,769 ,773 ,787 ,797,809 ,811 ,821 ,823 ,827 ,829 ,839 ,853 ,857 ,859,863 ,877 ,881 ,883 ,887 ,907 ,911 ,919 ,929 ,937,941 ,947 ,953 ,967 ,971 ,977 ,983 ,991 ,997}, count[sizeof(primes)/sizeof(int)]={0};
	int n,mc=0,tgcd;
	bool p;
	cin>>n;
	vector<int> a(n);
	for(auto &i:a){
		cin>>i;
		for(int j=0;j<sizeof(primes)/sizeof(int);++j){
			if(i%primes[j]==0){
				mc=max(mc,++count[j]);
			}
		}
	}
	p=mc<2;
	tgcd=a[0];
	sort(a.begin(),a.end());
	for(int i=1;i<a.size();++i){
		p=p&&(a[i]!=a[i-1]);
		tgcd=gcd(tgcd,a[i]);
	}
	if(p){
		cout<<"pairwise coprime"<<endl;
	}
	else if(tgcd==1){
		cout<<"setwise coprime"<<endl;
	}
	else{
		cout<<"not coprime"<<endl;
	}
}
