#include using namespace std; typedef long long ll; typedef long double ld; #define rep(i,n) for (int i = 0; i < (n); ++i) templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> n >> q; vector a(n); rep(i,n){ cin >> a[i]; } sort(a.begin(),a.end()); vector> dp(n+1,vector(n+1)); dp[n][0]=1; for(int i=n-1;i>=0;i--){ for(int j=0;j<=n;j++){ if(dp[i+1][j]==0){ continue; } (dp[i][j+1]+=dp[i+1][j])%=mod; (dp[i][j]+=dp[i+1][j]*(a[i]-1)%mod)%=mod; } } vector mul(n+1); mul[0]=1; for(int i=0;i> l >> r >> p; ll ans=0; for(int j=l;j<=r;j++){ int u=lower_bound(a.begin(),a.end(),j)-a.begin(); ll res=mul[u]*dp[u][p]%mod; ans=(ans^res); } cout << ans << endl; } }