//#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef signed long long ll; #define pp(...) (void)printf(__VA_ARGS__) #define For(x,to) for(x=0;x<(to);x++) #define ForAuto(x,arr) for(auto& x:arr) #define ForBeginEnd(x,c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++) #define All(a) (a.begin()),(a.end()) #define Zeros(a) memset(a,0,sizeof(a)) #define Minus(a) memset(a,0xff,sizeof(a)) #define PI 3.14159265 #define EPS (1e-10) #define EPS_eq(a,b) (abs((a)-(b)) < EPS) #pragma GCC diagnostic ignored "-Wconversion" //#define int long long const int INF = 1000*1000; int dxy[] = {0, 1, 0, -1, 0}; typedef pair P; void pp_int(int x){ printf("%d\n", x); }; //------------------------------------------------- signed main() { ll n,m;cin>>n>>m; ll gcd = __gcd(n,m); n /= gcd; m /= gcd; if(n % m == 0){ ll res = n/m; while(res % 10 == 0){ res /= 10; } printf("%lld\n", res % 10); return 0; } ll m5 = 0, m2 = 0; while(m % 2 == 0) m /= 2, m2++; while(m % 5 == 0) m /= 5, m5++; if (m != 1) { printf("-1\n"); return 0; } while(n % 10==0)n/=10; while(m2 > m5){ m5++; n *= 5; n %= 1000000; while(n % 10==0)n/=10; } while(m2 < m5){ m2++; n *= 2; n %= 1000000; while(n % 10==0)n/=10; } while(n % 10==0)n/=10; printf("%lld\n", n % 10); return 0; }