using System;
using System.Collections;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Threading.Tasks;

class Program
{

	//最大公約数を求める関数（Gratest Common Divisor）
	//計算量はO(logN)（より小さい方の整数をNとしたとき）
	//タイプはulongとする
	static ulong GCD(ulong a, ulong b)
	{
		//より大きい方をnとする
		ulong n = Math.Max(a, b);
		ulong m = Math.Min(a, b);

		//ループ処理（ユークリッドの互除法を利用）
		while(m != 0){
			ulong rem = n % m;
			n = m;
			m = rem;
		}

		return n;
	}

	//最小公倍数を求める関数（Least Common Multiple）
	/*
	GCD(a,b) * LCM(a,b) = ab、という性質を利用
	即ち、LCM(a,b) = ab / GCD(a,b)である。
	*/
	static ulong LCM(ulong a, ulong b){
		ulong lcm = 0;

		//より大きい方をnとする
		ulong n = Math.Max(a, b);
		ulong m = Math.Min(a, b);

		//最大公約数
		/*
		当然だが、gcdはnの約数なので、n/gcdは適当
		*/
		ulong gcd = GCD(n,m);
		lcm = n / gcd * m;

		return lcm;
	}

	//素因数分解を行う関数
	/*
	所謂「試し割り法」を使う。配列（素因数とその指数）のリストを返す。
	(e.g.
	例えば、60を素因数分解した場合、（2^2 * 3^1 * 5^1）
	primeFactors[0][0]には、一つ目の素因数2が、
	primeFactors[0][1]には、一つ目の素因数の指数2が、それぞれ格納される)
	*/
	//タイプはulongとする
	static void TrialDivision(ulong n)
	{
		//入力値の平方根
		ulong root = (ulong)Math.Sqrt(n);

		//カウンター（当該素因数で割った回数）、割る数、割られる数
		ulong cnt = 0;
		ulong div = 2;
		ulong tmp = n;

		//平方根を超えるまでループ
		while(div <= root){
			//素因数に持つ場合、割ることができる回数だけ割り続ける
			//(cntの値は、当該素数で何回割れるかを示す（p^aのaに該当）)
			if(tmp % div == 0){
				cnt ++;
				tmp /= div;
			}
			//割り切れない場合
			else{
				//cnt > 0の場合、素因数divで可能な限り割った以後である
				//（cnt = 0の場合、divは素因数ではない）
				if(cnt != 0){
					//素因数と、割った回数とを追加
					Check(div);
					//割った回数を初期化
					cnt = 0;
				}
				//次へ
				div += 1;
			}
		}

		//割った結果残ったのが1でない場合、当該素数も素因数である
		if(tmp != 1){
			Check(tmp);
		}

		return;
	}

	static void Check(ulong P){
		int p = (int)P;

		if(exist[p-1]){
			pairwise = false;
			return;
		}
		else{
			exist[p-1] = true;
			return;
		}
	}

	static bool[] exist;
	static bool pairwise;

	//Main
	static void Main(string[] args)
	{
		//読み込む
		int N = int.Parse(Console.ReadLine());
		ulong[] An = Console.ReadLine().Split(' ').Select(i => ulong.Parse(i)).ToArray();

		//累積最大公約数（後ろから埋めることに注意）
		ulong[] accum = new ulong[N];
		accum[N-1] = An[N-1];
		for(int i=N-1; i>0; i--){
			accum[i-1] = GCD(accum[i],An[i-1]);
		}

		int max = 1000000;

		//pairwise coprimeかどうか
		pairwise = true;

		//約数に持つか否か
		exist = new bool[max];

		for(int i=0; i<N; i++){
			TrialDivision(An[i]);
		}

		string ans = "";

		//条件判定
		if(pairwise){
			ans = "pairwise coprime";
		}
		else if(accum[0] == 1){
			ans = "setwise coprime";
		}
		else{
			ans = "not coprime";
		}

		Console.WriteLine(ans);
	}
}

