#include <cstdio>
#include <vector>
#include <queue>
#define NMAX 2000007
using namespace std;
queue< int > Sol;
int Prev[NMAX];
bool Cif[NMAX], Ap[NMAX], V[NMAX];
inline int gcd(int a, int b){
if(! b)
return a;
return gcd(b, a % b);
}
int main(){
int a = 0, b = 0, m = 0;
freopen("multiplu.in", "r", stdin);
freopen("multiplu.out", "w", stdout);
scanf("%d %d", &a, &b);
m = a * b / gcd(a, b);
int Aux = 1 % m;
Sol.push(Aux);
Prev[Aux] = 1;
Cif[Aux] = 1;
while(! Sol.empty()){
Aux = Sol.front();
Sol.pop();
int NewAux;
for(int i = 0; i <= 1; ++i){
NewAux = (Aux * 10 + i) % m;
if(Ap[NewAux] == 0){
Ap[NewAux] = 1;
Prev[NewAux] = Aux;
Cif[NewAux] = i;
Sol.push(NewAux);
}
}
}
int c = 0, NR = 0;
while(c != 1){
V[++NR] = Cif[c];
c = Prev[c];
}
if(m != 1)
V[++NR] = 1;
for(int i = NR; i >= 1; --i)
printf("%d", V[i]);
printf("\n");
return 0;
}