#include <bits/stdc++.h>
#include <bitset>
#include <algorithm>
#define mod (int)1000000007
#define int long long
using namespace std;

#define FAST                          \
    ios_base::sync_with_stdio(false); \
    cin.tie(NULL);
int vis[100005] = {0}, vis1[5000005];
vector<int> vec[3000005];
// map<int, int> v2[5000005];
// v1, vec1[3000005];
//int child[2000005];
//int divi[2000005];

// int dis[100005] = {0};
// int h[100005];
int dp[1000006];
// int p[100005];
// int dp[100005][100];
// bool f = 0;
// int bad[100005], good[100005];
// int p5[100005];
// int final_sum[300005], max_sum[10005];
// //int level[200005];
// //int time1 = 0;
//int dp[100002][505] = {0};
int a[100002];
int ans1 = 0;
void dfs(int node)
{
    vis[node] = 1;
    ans1++;
    for (int i = 0; i < vec[node].size(); i++)
    {
        if (!vis[vec[node][i]])
        {
            //  if (bit[vec[node][i]]            {

            dfs(vec[node][i]);
        }
    }
}
int divi[5000005];
// int dp[5000007];
// int pre_sum[5000005];
vector<int> prime;
void run()
{
    int j = 1;
    for (int i = 2; i < 1000001; i++)
    {
        if (!vis1[i])
            while (i * j < 1000001)
            {
                vis1[i * j] = 1;
                divi[i * j] = i;
                j++;
            }
        j = 1;
    }
    for (int i = 2; i < 1000003; i++)
    {
        if (divi[i] == i)
            prime.push_back(i);
    }
    //  for(int i=)
    // cout
    // cerr
    //     << "sdksd"
    //     << "\n";
    // for (int i = 2; i < 5000001; i++)
    // {
    //     // cout << i << " " << divi[i] << "\n";
    //     if (i == divi[i])
    //         prime.push_back(i);
    // }
    // for (int i = 1; i < 5000001; i++)
    // {
    //     map<int, int> mp;
    //     int p = i;
    //     while (p > 1)
    //     {
    //         dp[i]++;
    //         p /= divi[p];
    //     }
    //     //cout << mp.size() << "\n";
    //     //v2[i] = v2[i - 1];
    //     // for (auto itr : mp)
    //     //  {
    //     //    v2[i][itr.first] += itr.second;
    //     //   }
    //     // cerr << i << "hkcxhx"
    //     //    << "\n";
    // }
    // for (int i = 1; i < 5000001; i++)
    // {
    //     pre_sum[i] = pre_sum[i - 1] + dp[i];
    //     // for( auto itr)
    // }
}
// // int fastexpo(int a, int b)
// // {
// //     int ans = 1;
// //     while (b)
// //     {
// //         if (b & 1)
// //             ans = (ans * a) % mod;
// //         b = b / 2;
// //         a = (a * a) % mod;
// //     }
// //     return ans % mod;
// // }
// // int lowerIndex(int arr[], int n, int x)
// // {
// //     int l = 0, h = n - 1;
// //     while (l <= h)
// //     {
// //         int mid = (l + h) / 2;
// //         if (arr[mid] >= x)
// //             h = mid - 1;
// //         else
// //             l = mid + 1;
// //     }
// //     return l;
// // }

// // // function to find last index <= y
// // int upperIndex(int arr[], int n, int y)
// // {
// //     int l = 0, h = n - 1;
// //     while (l <= h)
// //     {
// //         int mid = (l + h) / 2;
// //         if (arr[mid] <= y)
// //             l = mid + 1;
// //         else
// //             h = mid - 1;
// //     }
// //     return h;
// // }

// // // function to count elements within given range
// //int countInRange(int arr[], int n, int x, int y)
// // {
// //     // initialize result
// //     int count = 0;
//     count = upperIndex(arr, n, y) - lowerIndex(arr, n, x) + 1;
//     return count;
// }

int32_t main()
{

    run();
    int n;
    cin >> n;
    int arr[n];
    int gcd = 0;
    for (int i = 0; i < n; i++)
    {
        cin >> arr[i];
        gcd = __gcd(arr[i], gcd);
        dp[arr[i]] += 1;
    }
    // for (int i = 0; i < 10; i++)
    // {
    //     cout << vis[i] << "\n";
    // }
    bool f = 0;
    for (int i = 0; i < prime.size(); i++)
    {
        int j = 1;
        int sum = 0;
        //  if (arr[i] != 1)
        while (prime[i] * j < 1000003)
        {
            if (dp[prime[i] * j])
            {

                sum += dp[prime[i] * j];
            }
            //  cout << sum << "\n";
            j++;
        }

        if (sum > 1)
        {
            //  cout << prime[i] << " " << sum << "\n";
            f = 1;
            break;
        }
    }
    if (!f)
    {
        cout << "pairwise coprime"
             << "\n";
    }
    else
    {
        if (gcd == 1)
        {
            cout << "setwise coprime"
                 << "\n";
        }
        else
        {
            cout << "not coprime"
                 << "\n";
        }
    }

    return 0;
}

Measured memory_bytes: 105388