#1614. 约瑟夫问题升级版

约瑟夫问题升级版

Background

Description

约瑟夫问题是指,有n个人围成一圈,依次报数,报到m的人出圈,已经出圈的不可以再次报数。

约瑟夫问题小s已经做到吐了,所以他决定改变一下规则,n个人并不是从小到大围成圈,而是以规定的顺序来。这个顺序在游戏开始时会告诉你。并且每次数到1-m之间的反序素数的人才出圈,如果数到m,下一个人重新从1开始报数。请你把出圈的顺序输出出来。

反序素数是指,是素数的同时,颠倒过来后还是一个素数。例如13、31、11.

Format

Input

第一行输入两个整数 n,m;第二行输入n个整数,分别表示每个人的id。n个人成圈的顺序为他们输入的先后顺序。

Output

输出出圈顺序,每个人用他的id表示

Samples

例子1

8 5
1 2 3 4 5 6 7 8
2 3 5 7 8 4 1 6

例子2

8 5
1 54 5 4 84 84 8 77
54 5 84 8 77 4 1 84

Limitation

对于 50%50\% 的数据:3mn1033\le m \le n\le 10^{3}1id1061\le id \le 10^6

对于 100%100\% 的数据:3mn1053\le m \le n\le 10^{5}1id10181\le id \le 10^{18}