从s+1开始枚举,再枚举每一个进制
/*
ID: xsy97051
LANG: C++
TASK: dualpal
*/
#include<iostream>
#include<cstdio>
#include<map>
#include<algorithm>
using namespace std;
char zf[21]={'0','1','2','3','4','5','6','7','8','9'};
map<int,int> vis;
string zhuan(int m,int n)
{
string st="";
while(m!=0)
{
st+=zf[m%n];
m/=n;
}
for(int i=0;i<=(st.size()-1)/2;i++)
swap(st[i],st[st.size()-i-1]);
return st;
}
int pan(string st)
{
if(st[0]=='0' || st[st.size()-1]=='0') return 0;
for(int i=0;i<=st.size()-1;i++)
if(st[i]!=st[st.size()-i-1]) return 0;
return 1;
}
int main()
{
freopen("dualpal.in","r",stdin);
freopen("dualpal.out","w",stdout);
int k,s;
cin>>k>>s;
for(int i=s+1;i<i+1;i++)
{
for(int jinzhi=2;jinzhi<=10;jinzhi++)
{
if(pan(zhuan(i,jinzhi))==1 || zhuan(i,jinzhi).size()==1) vis[i]++;
if(vis[i]>=2) break;
}
if(vis[i]>=2)
{
k--;
cout<<i<<endl;
}
if(k==0) return 0;
}
}