小楠的数组询问(easy)
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

这是该问题的简单版本。两个版本之间的区别在于,在此版本中,n,q 的范围更小


小楠天天待在512,所以小楠非常喜欢小于 512 的数字。


一天小楠获得了一个长度为 n 的数组 a,并给出了 q 个询问,每个询问给出一个区间 [l,r],定义


Val(l,r)=a_l|a_{l+1}|a_{l+2}|\dots|a_r,l \leq r


{}^\dagger 其中 "|" 代表按位或运算。对两个二进制数的每一位进行"或"操作:如果对应位中至少有一个为 1,则结果为 1;否则为 0。


对当前询问区间 [l,r] ,考虑所有满足 l \leq l' \leq r' \leq r 的子区间 [l',r'],构造对于当前询问的可重集


S=\{Val(l',r')|l \leq l' \leq r' \leq r \}


你需要对每个询问分别求集合 S 的众数(出现次数最多的元素)。


特别地,如果集合中所有数字出现次数都相同,那么所有数字都被小楠认为是众数。例如 S=\{1,2,3\},则数字 1,2,3 均为该集合的众数。


小楠关注众数的数量和答案。而不关注众数答案的区别。所以如果有多个众数的话输出其中任意一个即可。

输入描述:

第一行输入两个整数 n,q\ (1 \leq n,q \leq 2 \times 10^3),分别代表小楠获得的数组的长度和他的询问个数。


第二行输入 n 个整数 a_i\ (0 \leq a_i<512),代表数组 a 的元素。


接下来 q 行,每行输入两个整数 l,r,代表小楠的一次询问区间。

输出描述:

输出 q 行,每行包含两个整数,分别代表对应询问的众数数量和其中一个众数。

示例1

输入

复制
5 2
1 3 3 4 5
1 2
3 5

输出

复制
1 3
2 7

说明

对于第一次询问区间 [1,2],易得 S=\{Val(1,1),Val(1,2),Val(2,2)\}=\{1,3,3\} ,则 S 的众数为 3


对于第二次询问区间 [3,5],易得 S=\{Val(3,3),Val(3,4),Val(3,5),Val(4,4),Val(4,5),Val(5,5)\}=\{3,7,7,4,5,5\} ,则众数为 5,7 ,输出任意一个即可