#include #include using namespace std; #define rep(i,n) for(int i = 0; i < (int)(n); i++) constexpr int inf = 2e9; #include using namespace atcoder; /* #include #include namespace mp = boost::multiprecision; */ using ll = long long; int op(int a, int b) { return min(a,b); } int e() { return inf; } int main() { int N, Q; cin >> N >> Q; segtree seg(N); rep(i,N) { int s; cin >> s; seg.set(i,s); } while (Q--) { int l,r,k; cin >> l >> r >> k; assert(k == 1); l--; cout << seg.prod(l,r) << endl; } }