#P2064. 蒲公英

蒲公英

蒲公英 (dandelion.pas/c/cpp) 背景 亲爱的哥哥: 你在那个城市里面过得好吗? 我在家里面最近很开心呢。 昨天晚上奶奶给我讲了那个叫 「绝望」 的大坏蛋的故事的说! 它把人们的房子和田地搞坏,还有好多小朋友也被它杀掉了。我觉得把那么可怕的怪物召唤 出来的那个坏蛋也很坏呢。不过奶奶说他是很难受的时候才做出这样的事的…… 最近村子里长出了一大片一大片的蒲公英。一刮风,这些蒲公英就能飘到好远的地方了 呢。我觉得要是它们能飘到那个城市里面,让哥哥看看就好了呢!
哥哥你要快点回来哦! 爱你的妹妹 Violet Azure读完这封信之后微笑了一下。 “蒲公英吗……” 题目描述 在乡下的小路旁种着许多蒲公英,而我们的问题正是与这些蒲公英有关。 为了简化起见,我们把所有的蒲公英看成一个长度为 n的序列 ),,,,( naaaa  ,其中 ia为一个正整数,表示第 i棵蒲公英的种类编号。 而每次询问一个区间 ],[ rl ,你需要回答区间里出现次数最多的是哪种蒲公英,如果有 若干种蒲公英出现次数相同,则输出种类编号最小的那个。 注意,你的算法必须是在线的。 输入格式 第一行两个整数 mn, ,表示有 n株蒲公英, m次询问。 接下来一行 n个空格分隔的整数 ia,表示蒲公英的种类 再接下来 m行每行两个整数  rl , ,我们令上次询问的结果为x(如果这是第一次询问, 则 x ) 。 令 1mod)1(,1mod)1( 00  nxrrnxll ,如果 rl  ,则交换 rl, 。 最终的询问区间为 ],[ rl 。 输出格式 输出 m行。每行一个整数,表示每次询问的结果。 样例输入 6 3 1 2 3 2 1 2 1 5 3 6 1 5 样例输出 1 2 1 数据范围与约定 对于 20% 的数据,保证  mn, 。 对于 100% 的数据,保证 400001  n , 500001  m ,  ia 。