/*
ID: fniksic001
PROG: dualpal
LANG: C++
*/

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

string reverse(const string &s) {
    if (s.empty())
	return s;
    string r;
    for (int i = s.size() - 1; i >= 0; --i)
	r.push_back(s[i]);
    return r;
}

string represent(int n, int b) {
    string r;
    while (n) {
	if (n%b<10)
	    r.push_back(static_cast<char>(n%b)+'0');
	else
	    r.push_back(static_cast<char>(n%b-10)+'A');
	n/=b;
    }
    return r;
}

int main() {
    ifstream in("dualpal.in");
    ofstream out("dualpal.out");

    int N, S;
    in >> N >> S;

    for (int i = S + 1, found = 0; found < N; ++i) {
	int nBases = 0;
	for (int j = 2; j <= 10 && nBases < 2; ++j) {
	    string r(represent(i, j));
	    if (r == reverse(r))
		++nBases;
	}
	if (nBases >= 2) {
	    ++found;
	    out << i << endl;
	}
    }

    return 0;
}

