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

namespace AtCoder2 {
	class Program {
		static void Main(string[] args) {

			//出力の都度更新をやめる
			var sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
			Console.SetOut(sw);


			Ans();

			//更新する
			Console.Out.Flush();
			
		}
	public static void Ans() {

			var inputArray = retreiveLongArray();
			var inputCount = 1;

			// 不正な入力は処理しない
			if (inputArray.Length != inputCount) {
				Console.WriteLine("invalid input");
				return;
			}


			var N = (int)inputArray[0];
			var Aarray = retreiveLongArray();
			var aMax = Aarray.Max();
			var bunkai = eleFuri((int)aMax);

			var isPairwise = true;

			var primes = new HashSet<int>();

			//pairwiseの検証
			for (int i = 0; i < N; i++) {

				var a = Aarray[i];
				var aBunkai = new HashSet<int>();
				//素因数分解する
				while (a > 1) {
					var k = bunkai[a];
					if (aBunkai.Contains(k)) {
						a /= k;
						continue;
					}
					aBunkai.Add(k);
					a /= k;

				}

				foreach (var sosu in aBunkai) {
					if (primes.Contains(sosu)) {//素数が重複したらpairwiseではない
						isPairwise = false;
						break;
					}
					primes.Add(sosu);
				}
				if (!isPairwise) {
					break;
				}
			}

			if (isPairwise) {
				Console.WriteLine("pairwise coprime");
				return;
			}


			//setwiseの検証
			long g = 0;
			for (int i = 0; i < N; i++) {
				var a = Aarray[i];
				g = getGcd(g, a);
			}

			if (g==1) {
				Console.WriteLine("setwise coprime");
				return;
			}
			var ans = "not coprime";
			Console.WriteLine(ans);

		}


		/// <summary>
		/// 高速素因数分解用の配列を作る(その数を割ることのできる最小の素数)
		/// </summary>
		/// <param name="N"></param>
		/// <returns></returns>
		private static int[] eleFuri(int N) {

			var hurui = Enumerable.Range(0, N + 1).ToArray();

			var max = Math.Sqrt(N);
			for (int i = 2; i <= max; i++) {
				if (hurui[i]!= i) {//何らかの素数の倍数の場合
					continue;
				}
				var k = i + i;
				while (k <= N) {
					hurui[k] = i;
					k += i;
				}
			}

			return hurui;

		}

		/// <summary>
		/// 最大公約数
		/// </summary>
		/// <param name="a"></param>
		/// <param name="b"></param>
		/// <returns></returns>
		static long getGcd(long a, long b) {
			if (a < b) {
				return getGcd(b, a);
			}
			if (b > 0) {
				return getGcd(b, a % b);
			}
			else {
				return a;
			}
		}

		/// <summary>
		/// スペースで区切られた文字列配列の入力を受け取る
		/// </summary>
		/// <returns></returns>
		private static string[] retreiveStringArray() {
			var inputArray = Console.ReadLine().Split(' ');
			return inputArray;
		}

		/// <summary>
		/// スペースで区切られた整数配列の入力を受け取る
		/// </summary>
		/// <returns></returns>
		private static long[] retreiveLongArray() {
			var inputArray = Console.ReadLine().Split(' ');
			var longArray = inputArray.Select(s => long.Parse(s));
			return longArray.ToArray();
		}


		/// <summary>
		/// 2組みずつの入力データ(数値)からTuppleListを作成する
		/// </summary>
		/// <param name="N"></param>
		/// <returns></returns>
		private static List<Tuple<long, long>> createLongTuppleList(long N) {
			var inpList = new List<Tuple<long, long>>();

			for (int i = 0; i < N; i++) {
				var inp = retreiveLongArray();
				var item1 = inp[0];
				var item2 = inp[1];
				inpList.Add(new Tuple<long, long>(item1, item2));
			}
			return inpList;
		}
	}
}



Measured memory_bytes: 117360