#include<algorithm>
#include<bitset>
#include<iostream>
#include<iomanip>
#include<set>
#include<string>
#include<math.h>
#include<stack>
#include<string>
#include<queue>
#include<vector>
using namespace std;
typedef long long int ll;
typedef pair<int, ll> P;

//--------------
///#define DEBUG
//--------------

#ifdef DEBUG
	#define debugprint(x) cout<<x<<" "
	#define debugendl cout<<endl
	#define debug(x) x
#else
	#define debugprint(x)
	#define debugendl
	#define debug(x)
#endif

class zahyo{
	public:
	int x;
	int y;
	zahyo(){
		x=0;
		y=0;
	}
	zahyo(int x_,int y_){
		x=x_;
		y=y_;
	}
	void print(){
		cout<<x<<" "<<y;
	}
	zahyo operator+(zahyo add){
		add.x=this->x+add.x;
		add.y=this->y+add.y;
		return add;
	}
	zahyo operator-(zahyo add){
		add.x=this->x-add.x;
		add.y=this->y-add.y;
		return add;
	}
	zahyo operator*(int t){
		zahyo temp;
		temp.x=this->x*t;
		temp.y=this->y*t;
		return temp;
	}
	zahyo operator%(int t){
		zahyo temp(this->x%t,this->y%t);
		return temp;
	}
	zahyo operator/(int t){
		zahyo temp(this->x/t,this->y/t);
		return temp;
	}
	bool operator==(const zahyo add) const{
		if(add.x==this->x and add.y==this->y){return true;}
		else{return false;}
	}
	bool operator!=(const zahyo add) const{
		if(add.x==this->x or add.y==this->y){return false;}
		else{return true;}
	}
	bool operator<(const zahyo add) const{
		if(this->x<add.x){return true;}
		else if(this->x==add.x and this->y<add.y){return true;}
		else{return false;}
	}
	bool operator>(const zahyo add) const{
		if(this->x>add.x){return true;}
		else if(this->x==add.x and this->y>add.y){return true;}
		else{return false;}
	}
	void input(){
		cin>>x>>y;
	}
};
int p[168]={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};
int a[1000000];
int main(){
 int n;cin>>n;
 for(int i=0;i<n;i++){
	 cin>>a[i];
 }
 bool ispairwise=true;
 bool issetwise=true;
 for(int i=0;i<168;i++){
	 bool morethanone=false;
	 bool none=false;
	 for(int j=0;j<n;j++){
		 if(a[j]%p[i]!=0){
			 none=true;
		 }
		 else{
			 if(morethanone){
				 ispairwise=false;
			 }
			 morethanone=true;
			 a[j]=a[j]/p[i];
		 }
	 }
	 if(morethanone==true and none==false){
		 issetwise=false;
	 }
 }
/*int remain=-1;
for(int i=0;i<n;i++){
	if(a[i]!=1){
		remain=a[i];
		bool morethanone=false;
		bool none=false;
			for(int j=i;j<n;j++){
				if(i!=0){none=true;}
				 if(a[j]!=remain){
					 none=true;
				 }
				 else{
					 if(morethanone){
						 ispairwise=false;
					 }
					 morethanone=true;
					 a[j]=1;
				 }
		}
		 if(morethanone==true and none==false){
			 issetwise=false;
		 }
	}
}*/
 sort(a,a+n);
 if(a[0]==a[n-1] and a[0]!=1){issetwise=false;ispairwise=false;}
 for(int i=0;i<n-1;i++){
	 if(a[i]==a[i+1] and a[i]!=1){
		 ispairwise=false;
	 }
 }


if(ispairwise){
	cout<<"pairwise coprime"<<endl;
}
else if(issetwise){
	cout<<"setwise coprime"<<endl;
}
else{
	cout<<"not coprime"<<endl;
}
}


Measured memory_bytes: 7464