void main() { auto N = readLong; auto M = readLong; long g = gcd(N, M); N /= g, M /= g; long m = M; int cnt2, cnt5; while (m % 2 == 0) cnt2++, m /= 2; while (m % 5 == 0) cnt5++, m /= 5; int ans; if (m != 1) { ans = -1; } else { long n = N; while (n % 10 == 0) n /= 10; n %= 10; foreach (i; cnt2 .. cnt5) n = n * 2 % 10; foreach (i; cnt5 .. cnt2) n = n * 5 % 10; ans = cast(int)n; } ans.writeln; } import std,core.bitop; string[]_R; string readString(){while(_R.empty){_R=readln.chomp.split;}auto ret=_R.front;_R.popFront;return ret;} int readInt(){return readString.to!int;} long readLong(){return readString.to!long;} ulong readULong(){return readString.to!ulong;} real readReal(){return readString.to!real;} bool chmin(T)(ref T A,T B){if(A>B){A=B;return true;}else{return false;}} bool chmax(T)(ref T A,T B){if(A1){int mid=(L+R)/2;(A[mid]1){int mid=(L+R)/2;(A[mid]<=x?L:R)=mid;}return R;}