#include <bits/stdc++.h>
using namespace std;
const double pi = 3.141592653589793;
using Graph = vector<vector<int>>;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
template <typename A, size_t N, typename T>
void Fill(A (&array)[N], const T &val) {
  std::fill((T *)array, (T *)(array + N), val);
}
long long GCD(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return GCD(b, a % b);
}
long long gcd_bec(vector<long long> const &A) {
  int size = ((int)(A).size());
  long long ret = A[0];
  for (int i = (1); i < (int)(size); i++) {
    ret = GCD(ret, A[i]);
  }
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  long long N;
  cin >> N;
  long long A[1001001];
  for (int i = (0); i < (int)(N); i++) cin >> A[i];
  bool flag = true;
  long long res = A[0];
  for (int i = (1); i < (int)(N); i++) {
    res = GCD(res, A[i]);
    if (res != 1) flag = false;
  }
  long long res2 = A[N - 1];
  for (int i = (1); i < (int)(N); i++) {
    res2 = GCD(res2, A[N - 1 - i]);
    if (res2 != 1) flag = false;
  }
  for (int i = (0); i < (int)(N - 1); i++) {
    if (GCD(A[i], A[i + 1]) != 1) flag = false;
  }
  for (int i = (1); i < (int)(N); i++) {
    if (GCD(A[0], A[i]) != 1) flag = false;
  }
  if (flag) {
    cout << "pairwise coprime" << endl;
  } else if (res == 1 && res2 == 1) {
    cout << "setwise coprime" << endl;
  } else {
    cout << "not coprime" << endl;
  }
  return 0;
}
