#include using namespace std; #define rep(i,n) for(int i=0;i> n >> m >> x; vector a(n); rep(i, n) { cin >> a[i]; } rep(i, m) { cin >> z[i].t >> z[i].l >> z[i].r; z[i].l--; z[i].r--; } int cnt = 0; rep(i, (1 << n)) { int u[20] = {}; int s = 0; rep(j, n) { if (i&(1 << j)) { s ^= a[j]; u[j] = 1; } } if (s == x) { bool f = true; rep(j, m) { int num = 0; Rep1(k, z[j].l, z[j].r) { if (i&(1 << k))num ^= 1; } if (num^z[j].t)f = false; } if (f)cnt++; } } cout << cnt << endl; return 0; }