某科研机构正在对一条生产线进行管理分析。生产线上依次站着 N 名工作人员,从左到右依次编号为 1 \sim N。
机构的所有工作人员划分为 三种不同的岗位类型,每名工作人员恰好属于其中一种,岗位类型编号分别为 1, 2, 3。
管理部门需要频繁统计某一连续区间内,各种岗位类型的人员数量。为此,他们提出了 Q 次统计请求,每次请求都会给出一个区间 [l, r],要求统计编号在该区间内的工作人员中,三种岗位类型分别有多少人。
请你编写程序,高效地回答所有统计请求。
第一行包含两个整数 N, Q,分别表示工作人员人数和统计请求次数。
接下来 N 行,每行一个整数,第 i 行表示编号为 i 的工作人员所属的岗位类型(只可能为 1, 2, 3 中的一个)。
接下来 Q 行,每行包含两个整数 l, r,表示一次统计请求,要求统计区间 [l, r] 内三种岗位类型的人数。
对于每一次统计请求,输出一行,包含三个整数,依次表示在指定区间内:岗位类型分别为 1 2 3 的人数,整数之间用空格分隔。
6 3 2 1 1 3 2 1 1 6 3 3 2 4
3 2 1 1 0 0 2 0 1
10 5 1 2 3 1 2 2 3 1 1 2 1 10 3 7 4 9 2 5 6 6
4 4 2 1 2 2 3 2 1 1 2 1 0 1 0
12 6 2 1 3 2 1 1 3 2 3 1 2 1 1 12 2 8 5 10 3 3 6 12 4 9
5 4 3 3 2 2 3 1 2 0 0 1 3 2 2 2 2 2
第一次查询区间 [1,6],其中:岗位类型 1 有 3 人、岗位类型 2 有 2 人、岗位类型 3 有 1 人。
第二次查询区间 [3,3],只有第 3 名工作人员,其岗位类型为 1。
第三次查询区间 [2,4],其中:岗位类型 1 有 2 人、岗位类型 3 有 1 人。
对于 40\% 的数据,满足 1 \le N, Q \le 1000。
对于 100\% 的数据,满足 1 \le N, Q \le 10^5,岗位类型编号只可能为 1, 2, 3,查询区间满足 1 \le l \le r \le N。