1624. 异世界的模块合并(25分)

果冻利用训练好的人偶和员工,成功制作了异世界的第一款二次元氪金卡牌手游,给异世界带来了巨大的文化冲击,一时成为现象级爆款。果冻并未满足,在贤者禾枫的建议下,果冻打算制作一款包含原世界所有内容的大型游戏,起名为果核大陆。

由于开发周期过长,果冻打算使用增量发布。最初发布的版本只保留最核心的玩法,其余玩法在后续版本加入。考虑到模块耦合度,最开始有 n 组模块,第 i 个模块单独在第 i 组,价值为 2^{n^2+i}。模块和组编号均从 1n 连续。

现在有 n-1 种合并方案,第 k 种合并方案有 k 次合并。在第 j 次合并,首先找到编号为 ((j+k)\bmod n)+1 的模块所在组和编号为 ((j+k)^2\bmod n)+1 的模块所在组。若它们是同一组,将选择其中一个组更改为该组的下一个组(若存在编号更大的组,则是首个编号比它大的组;若不存在,则是当前编号最小的组),然后合并这两个组为编号更大的组。合并时,先把编号较小组的所有模块放入编号较大的组,然后删除编号较小组。合并后编号较大的组价值不变。

为尽可能多合并,果冻想找到最大整数的 k ,满足合并后剩余各组价值之积大于 (p!)^p

输入

输入一行两个整数 n,p

20\% 分数的数据, 1\le n\le6,0\le p\le6

40\% 分数的数据, 1\le n\le6\times10^3,0\le p\le1.5\times10^5

80\% 分数的数据, 1\le n\le10^5,0\le p\le10^5

100\% 分数的数据, 1\le n\le5\times10^5,0\le p\le5\times10^5

输出

若能找到这样的 k ,输出一行一个整数 k ;否则,输出 impossible

样例

标准输入 复制文本
6 6
标准输出 复制文本
4
标准输入 复制文本
6 1
标准输出 复制文本
5
标准输入 复制文本
6 10
标准输出 复制文本
impossible

提示

n=6 ,有 5 种方案,依次剩下的组编号为 (1,2,4,5,6),(1,2,3,6),(3,4,6),(4,6),(6)

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 69
通过 11