from atcoder import segtree from itertools import permutations from bisect import bisect_left, bisect_right import random import math from collections import deque from collections import Counter from collections import defaultdict inf = 1 << 60 def sgn(x): if x > 0: return 1 elif x == 0: return 0 else: return -1 def popC(x): ans = 0 while x != 0: ans += x % 2 x //= 2 return ans def LI(): return list(map(int, input().split())) def II(): return int(input()) def SI(): return input() def op(a, b): r = [] for x in a: r.append(x) for x in b: r.append(x) r.sort() return r[0:10] def e(): return [float("inf")]*10 n, q = LI() s = LI() vec = [] for x in s: y = e() y[0] = x vec.append(y) seg = segtree.SegTree(op, e(), vec) for _ in range(q): l, r, k = LI() print(sum(seg.prod(l-1, r)[0:k]))