#include <bits/stdc++.h>
using namespace std;
template <class T>
long long size(const T& x) {
  return x.size();
}
#pragma GCC optimize("O1")
template <class T>
T smod(T a, T b) {
  return (a % b + b) % b;
}
int cnt[1000010] = {0};
int main() {
  cin.sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int n;
  cin >> n;
  vector<int> A(n);
  for (long long i = (0); i < (n); ++i) {
    cin >> A[i];
  }
  set<int> used;
  for (long long i = (0); i < (n); ++i) {
    set<int> ans;
    long long a = A[i];
    for (long long i = (2); i < (sqrt(a) + 1); ++i) {
      while (a % i == 0) {
        ans.insert(i);
        a /= i;
      }
    }
    if (a != 1) {
      ans.insert(a);
    }
    for (auto it = (ans).begin(); it != (ans).end(); ++it) {
      int val = *it;
      used.insert(val);
      cnt[val]++;
      if (cnt[val] == n) {
        break;
      }
    }
  }
  bool is_coprime = true;
  bool is_setprime = true;
  for (auto it = (used).begin(); it != (used).end(); ++it) {
    int val = cnt[(*it)];
    if (val > 1) {
      is_coprime = false;
    }
    if (val == n) {
      is_setprime = false;
    }
  }
  if (is_coprime) {
    cout << "pairwise coprime" << '\n';
    return 0;
  }
  if (is_setprime) {
    cout << "setwise coprime" << '\n';
    return 0;
  }
  cout << "not coprime" << '\n';
  return 0;
}
