#include <bits/stdc++.h>
using namespace std;
#define ll long long
bool getBit(ll num, int idx)
{
return ((num >> idx) & 1);
}
const int mod=1e9+7;
void solve()
{
int N;
cin>>N;
vector<int>A(N);
for (int I=0;I<N;I++)
{
cin>>A[I];
}
sort(A.begin(),A.end());
vector<map<int,int>>B;
vector<vector<int>>temp;
temp.push_back({0});
for (int I=1;I<(1<<N);I++)
{
vector<int>V;
for (int J=0;J<N;J++)
{
if (getBit(I,J))
{
V.push_back(A[J]);
}
}
temp.push_back(V);
}
sort(temp.begin(),temp.end());
for (auto it:temp)
{
map<int,int>tempe;
for (auto itt:it)
{
tempe[itt]++;
}
B.push_back(tempe);
}
map<int,vector<ll>>primes;
for (int I=0;I<N;I++)
{
vector<ll>V((1<<N)+2,0);
primes[A[I]]=V;
}
int Q;
cin>>Q;
for (int I=0;I<Q;I++)
{
int l,r,x;
cin>>l>>r>>x;
primes[x][l]++;;
primes[x][r+1]--;
}
int sz=B.size();
for (int I=0;I<N;I++)
{
for (int J=1;J<sz;J++)
{
primes[A[I]][J]+=primes[A[I]][J-1];
}
for (int J=1;J<sz;J++)
{
if (B[J][A[I]]%2==0)
{
if (primes[A[I]][J]%2!=0)
{
B[J][A[I]]=1;
}
}
else if (B[J][A[I]]%2!=0)
{
if (primes[A[I]][J]%2!=0)
{
B[J][A[I]]=0;
}
}
}
}
for (auto it:B)
{
ll res=1;
for (auto itt:it)
{
if (itt.second>0)
{
res*=itt.first;
res%=mod;
}
}
if (res == 0)continue;
cout<<res<<" ";
}
cout<<endl;
}
int main()
{
cin.tie(0);
int t = 1;
//cin >> t;
while (t--)
{
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwoKYm9vbCBnZXRCaXQobGwgbnVtLCBpbnQgaWR4KQp7CiAgICByZXR1cm4gKChudW0gPj4gaWR4KSAmIDEpOwp9Cgpjb25zdCBpbnQgbW9kPTFlOSs3OwoKdm9pZCBzb2x2ZSgpCnsKICAgIGludCBOOwogICAgY2luPj5OOwogICAgdmVjdG9yPGludD5BKE4pOwogICAgZm9yIChpbnQgST0wO0k8TjtJKyspCiAgICB7CiAgICAgICAgY2luPj5BW0ldOwogICAgfQogICAgc29ydChBLmJlZ2luKCksQS5lbmQoKSk7CiAgICB2ZWN0b3I8bWFwPGludCxpbnQ+PkI7CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+dGVtcDsKICAgIHRlbXAucHVzaF9iYWNrKHswfSk7CiAgICBmb3IgKGludCBJPTE7STwoMTw8Tik7SSsrKQogICAgewogICAgICAgIHZlY3RvcjxpbnQ+VjsKICAgICAgICBmb3IgKGludCBKPTA7SjxOO0orKykKICAgICAgICB7CiAgICAgICAgICAgIGlmIChnZXRCaXQoSSxKKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVi5wdXNoX2JhY2soQVtKXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGVtcC5wdXNoX2JhY2soVik7CiAgICB9CiAgICBzb3J0KHRlbXAuYmVnaW4oKSx0ZW1wLmVuZCgpKTsKICAgIGZvciAoYXV0byBpdDp0ZW1wKQogICAgewogICAgICAgIG1hcDxpbnQsaW50PnRlbXBlOwogICAgICAgIGZvciAoYXV0byBpdHQ6aXQpCiAgICAgICAgewogICAgICAgICAgICB0ZW1wZVtpdHRdKys7CiAgICAgICAgfQogICAgICAgIEIucHVzaF9iYWNrKHRlbXBlKTsKICAgIH0KICAgIG1hcDxpbnQsdmVjdG9yPGxsPj5wcmltZXM7CiAgICBmb3IgKGludCBJPTA7STxOO0krKykKICAgIHsKICAgICAgICB2ZWN0b3I8bGw+VigoMTw8TikrMiwwKTsKICAgICAgICBwcmltZXNbQVtJXV09VjsKICAgIH0KICAgIGludCBROwogICAgY2luPj5ROwogICAgZm9yIChpbnQgST0wO0k8UTtJKyspCiAgICB7CiAgICAgICAgaW50IGwscix4OwogICAgICAgIGNpbj4+bD4+cj4+eDsKICAgICAgICBwcmltZXNbeF1bbF0rKzs7CiAgICAgICAgcHJpbWVzW3hdW3IrMV0tLTsKICAgIH0KICAgIGludCBzej1CLnNpemUoKTsKICAgIGZvciAoaW50IEk9MDtJPE47SSsrKQogICAgewogICAgICAgIGZvciAoaW50IEo9MTtKPHN6O0orKykKICAgICAgICB7CiAgICAgICAgICAgIHByaW1lc1tBW0ldXVtKXSs9cHJpbWVzW0FbSV1dW0otMV07CiAgICAgICAgfQogICAgICAgIGZvciAoaW50IEo9MTtKPHN6O0orKykKICAgICAgICB7CiAgICAgICAgICAgIGlmIChCW0pdW0FbSV1dJTI9PTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChwcmltZXNbQVtJXV1bSl0lMiE9MCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBCW0pdW0FbSV1dPTE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoQltKXVtBW0ldXSUyIT0wKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAocHJpbWVzW0FbSV1dW0pdJTIhPTApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQltKXVtBW0ldXT0wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZvciAoYXV0byBpdDpCKQogICAgewogICAgICAgIGxsIHJlcz0xOwoKICAgICAgICBmb3IgKGF1dG8gaXR0Oml0KQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGl0dC5zZWNvbmQ+MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmVzKj1pdHQuZmlyc3Q7CiAgICAgICAgICAgICAgICByZXMlPW1vZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAocmVzID09IDApY29udGludWU7CiAgICAgICAgY291dDw8cmVzPDwiICI7CiAgICB9CiAgICBjb3V0PDxlbmRsOwp9CgppbnQgbWFpbigpCnsKICAgIGNpbi50aWUoMCk7CgogICAgaW50IHQgPSAxOwoKICAgIC8vY2luID4+IHQ7CgogICAgd2hpbGUgKHQtLSkKICAgIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==