#include #define pii pair #define fi first #define se second #define mp make_pair #define pb push_back #define eb emplace_back #define pf push_front #define pb2 pop_back #define pf2 pop_front #define line printf("\n") #define pq priority_queue #define rep(k,i,j) for(int k = (int)i;k<(int)j;k++) #define repd(k,i,j) for(int k = (int)i;k>=(int)j;k--) #define ll long long #define ALL(a) a.begin(),a.end() #define vi vector using namespace std; double EPS = 1e-9; int INF = 1e9+7;; long long INFLL = 1e17; double pi = acos(-1); int dirx[8] = {-1,0,0,1,-1,-1,1,1}; int diry[8] = {0,1,-1,0,-1,1,-1,1}; clock_t first_attempt = clock(); inline void cek_time(){ clock_t cur = clock()- first_attempt; cerr<<"TIME : "<<(double) cur/CLOCKS_PER_SEC< #include using namespace __gnu_pbds; typedef tree, rb_tree_tag, tree_order_statistics_node_update> bbst; //end of template map dp; const int maxn = 1e6+6; int is_prime[maxn]; int isPrime(ll a){ if(a &prime){ for(ll x = 2;x*x<=a;x++){ while(a%x==0)a/=x, prime.pb(x); } if(a!=1)prime.pb(a); } ll f(ll a){ vector fact; factorize(a,fact); sort(fact.begin(),fact.end()); ll ret = 1; for(auto x : fact){ // cout<>n; ll ret = 0; while(n--){ ll a; cin>>a; ret += f(a); // cout<