#6060. 岗位统计

岗位统计

题目描述

某科研机构正在对一条生产线进行管理分析。生产线上依次站着 N名工作人员,从左到右依次编号为 1∼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

数据范围

对于 40%的数据,满足1≤N,Q≤1000。
对于 100%的数据,满足 1≤N,Q≤100000,岗位类型编号只可能为1,2,3,查询区间满足1≤l≤r≤N。