小 $L$ 的书架上摆放着很多书。当小 $L$ 想看某本书时,便会从书架抽出这本书,但看完以后往往会随手扔到桌面上。
只有当书桌上放的书足够多时,小 $L$ 才会想起来把书桌上的书放回书架。 已知小 $L$ 书架上原有 $n$ 本书排成一排,每本书都有一个不重复的编号(编号范围 $1$ 至 $n$ )。
当小$L$ 把书桌上的书放回书架时,小 $L$ 总是采用逐一插入的方式,也即保持书架上的书的顺序不变,在书架上选择一个位置(书架上第一本书前,或者相邻两本书之间,或者最后一本书后),然后往里面插入一本书;接着再选择一个位置,再插入另一本书,以此类推。
当把所有书都插入后,$n$ 本书的编号会形成一个排列,小 $L$ 希望知道字典序最小的排列是多少。
注明:提交语言有 C 和 C++ 两种,默认为 C,如果要使用 C++ 提交,请手动切换。
输入数据第一行包含两个整数,$n$ 和 $m(1 \le m \le n \le 10^5)$,表示一共有 $n$ 本书以及小 $L$ 在插入第一本书前,书架上还剩下 $m$ 本书。
接下来 $m$ 行,每行包含一个整数,表示小 $L$ 在插入第一本书前,书架上还剩下的 $m$ 本书的编号依次是多少。
对于 $30\%$ 的数据,$n \le10$
对于 $50\%$ 的数据,$n \le 10^4 $
对于 $100\%$ 的数据,$n\le 10^5$
输出 $n$ 行,表示字典序最小的排列方案中 $n$ 本书的编号依次是多少。
5 3 1 4 2
1 3 4 2 5