音吹高中
时间限制:C/C++/Rust/Pascal 4秒,其他语言8秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
Special Judge, 64bit IO Format: %lld

题目描述

题目背景
「(做什么白日梦呢。不对吧,星之守千秋。今天来这……难道不是为了做个了断吗)」
没错。我让心春先回去,特地独自来这……可不是为了委身于这种甜蜜的幻想。
倒不如说,是为了一决胜负。
在这最后……。……为了断念这份「偶然」及「命运」,勇敢的,独自一人……将存在与此的,那令人留恋的奇迹般的「某物」——。
「……千秋?」
「————」
突然,被人从身后搭话,我,完全僵硬了。
没想到,居然,为什么,偏偏,在这个时候。
纷乱的情感油然而生……但是,我依旧安慰自己「不,只不过是由我的愿望所产生的幻听而已。绝对是这样。这是最合理的解释!」,为了证明它,我停止观星回过头。
于是,我慢慢降低视线,只见那里。
「晚上好,千秋。没想到我特地独自一人来观星都能遭遇你……有点搞笑呢」
带着天真无邪的笑脸的思念之人——雨野景太。
我紧紧摁住胸口,不禁再次抬头看向星空。
「(……放过我吧……真是受够了……)」
我真心向玩弄自己的神明如此请愿。
题目描述
雨野拿到了 nobe 大师的新作品,这次是一个擂台游戏。
初始总共有 n 个人,每个人的体力值为 a_i,当第 i 个人体力值降为 0 的时候,第 i 个人就会下场。
假设第 i 个人和第 j 个人决斗,则两者体力值均减掉 min(a_i,a_j)
当最后只有一个人站在场上,那个人就获胜了。
当然既然是 nobe 大师的作品怎么可能像小程序游戏一样唐?假设现在有 m 个人,雨野可以选择一个长度为 m 的排列 p,则每次在排列中选取前两位还没有下场的人进行决斗直到最后只剩一个人站在场上,如果没有人站在场上,那就没有人获胜。
譬如序列 a 为 [5,1,2,4,3],p 为 [4,1,2,3,5],则第 4 个人和第 1 个人打,第 4 个人体力变为 4-\min(4,5)=0,下场,第 1 个人体力变为 5-\min(4,5)=1,留在场上;第 1 个人接下来和第 2 个人打,第 1 个人体力变为 1-\min(1,1)=0,下场,第 2 个人体力变为 1-\min(1,1)=0,同样下场;接下来第 3 个人和第 5 个人打,第 3 个人变成 2-\min(2,3)=0,下场,第 5 个人变成 3-\min(2,3)=1,此时只有第 5 个人没有下场,所以第 5 个人获胜。
同时这个游戏还支持自定义角色,雨野自定义了 q 个角色,他决定依次将这些角色加入游戏中,在加入第 i 个角色之后他想立刻知道现在第 i 个角色是否有可能获得胜利,如果可以,输出 mono 并构造方案,否则输出 nobe。
数据范围
1\leqslant n,q\leqslant 2\times 10^3,2\leqslant n+q \leqslant 2\times10^3,1\leqslant \sum a_i\leqslant 2\times 10^6

输入描述:

第一行一个数 n 表示总人数。
第二行 n 个数,第 i 个数为 a_i 表示第 i 个人最初的体力值。
第三行一个数 q 表示自定义角色数。
第四行 q 个数,第 i 个数为雨野自定义的第 i 个角色的体力值。

输出描述:

对于第 i 组询问,如果答案为 mono,则接下来一行输出一个长度为 n+i 的排列 p,表示雨野安排的决斗顺序;否则输出一行结束。
示例1

输入

复制
2
2 12
1
15

输出

复制
mono
1 2 3
示例2

输入

复制
2
12 13
1
2

输出

复制
mono
1 2 3

说明