#include <algorithm>
#include <cctype>
#include <cmath>
#include <cstring>
#include <iostream>
#include <sstream>
#include <numeric>
#include <map>
#include <set>
#include <queue>
#include <vector>

using namespace std;

typedef long long LL;
typedef long double LD;
typedef pair<LL, LL> II;
typedef pair<LL, II> III;

static const LL INF = 1LL << 60;

LD solve(long long A, long long B) {
	LD ans = 100.0 * LD(A - B) / A;
	return ans;
}

int main() {
	cout.precision(20);
    long long A, B;
	std::cin >> A >> B;
	cout << solve(A, B) << endl;
	return 0;
}

#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<set>
#include<map>
#include <functional>
#include <iomanip>
#include<cmath>
#include<deque>
#include <math.h>
#include <queue>
#include <sstream>
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define PI 3.14159265359
using namespace std;
using ll = long long;


int GetDigit(ll num) {

	int a = 0;
	while (num) {
		num /= 10;
		a++;
	}
	return a;
}

ll Get_keta_num(ll num) {
	ll z = 0;
	while (num) {
		z += num % 10;
		num /= 10;
	}
	return z;
}

void print(set<int> s) {
	for (set<int>::iterator it = s.begin(); it != s.end(); it++) {
		cout << *it << " ";
	}
	cout << endl;
}

ll count_num_2(ll num) {
	ll data = 0;
	while (true) {
		ll m = num % 1000;
		ll k = num % 100;
		if ((m % 8) == 0) {
			data += 3;
			num /= 8;
			continue;
		}
		else if ((k % 4) == 0) {
			data += 2;
			num /= 4;
			continue;
		}
		else if ((k % 2) == 0) {
			data++;
			num /= 2;
			continue;
		}
		break;
	}
	return data;
}
ll facctorialMethod(int k) {
	ll sum = 1;
	for (int i = 1; i <= k; ++i)
	{
		sum *= i;

	}
	return sum;
}


//" "

ll Get_num_in_string(string s) {
	int n = s.length(), z;
	ll sur = 0;
	for (int i = 0; i < n; i++) {
		z = int(s[i] - '0');
		if (z < 10) {
			sur *= 10;
			sur += z;
		}
	}
	return sur;
}

ll ll_pow(int num, int zyousuu) {
	ll ans = 1;
	for (int i = 0; i < zyousuu; i++) {
		ans *= num;
	}

	return ans;
}
string substrBack(std::string str, size_t pos, size_t len) {
	const size_t strLen = str.length();

	return str.substr(strLen - pos, len);
}

ll ll_gcd(ll x, ll y) {
	if (x < y) {
		ll a = x;
		x = y;
		y = a;
	}

	while (y > 0) {
		ll r = x % y;
		x = y;
		y = r;
	}
	return x;
}


using Graph = vector<vector<int>>;

ll ll_lcm(ll a, ll b) {
	return a * b / ll_gcd(a, b);
}

string get_words_from_end(string word, int num) {
	return word.substr(word.size() - num, num);
}

string binary(ll bina) {
	string ans = "";
	if (bina == 0) {
		ans = "0";
		return ans;
	}
	if (bina == 1) {
		ans = "1";
		return ans;
	}
	while (bina != 0) {
		int a = bina % 2;
		char c = '0' + a;
		ans += c;
		bina -= a;
		bina /= 2;
	}
	reverse(ans.begin(), ans.end());
	return ans;
}

void YES() {
	cout << "YES" << endl;
}
void NO() {
	cout << "NO" << endl;
}
void Yes() {
	cout << "Yes" << endl;
}
void No() {
	cout << "No" << endl;
}

ll comb(ll N, ll i) {
	vector<vector<long long int> > v(N + 1, vector<long long int>(N + 1, 0));
	for (int i = 0; i < v.size(); i++) {
		v[i][0] = 1;
		v[i][i] = 1;
	}
	for (int k = 1; k < v.size(); k++) {
		for (int j = 1; j < k; j++) {
			v[k][j] = (v[k - 1][j - 1] + v[k - 1][j]);
		}
	}
	return v[N][i];
}

bool is_prime(long long N) {
	if (N == 1) return false;
	for (long long i = 2; i * i <= N; ++i) {
		if (N % i == 0) return false;
	}
	return true;
}

bool divisor(long long n) {
	vector<long long> ret;
	for (long long i = 1; i * i <= n; i++) {
		if (n % i == 0) {
			ret.push_back(i);
			if (i * i != n) ret.push_back(n / i);
		}
	}
	sort(ret.begin(), ret.end()); // 昇順に並べる
	bool x = false;
	if (ret.size() == 8)x = true;
	return x;
}

vector<bool> seen(100005, false);
vector<int> ans;
int count = 0;

void dfs(const Graph& G, int v) {
	seen[v] = true; // v を訪問済にする
	ans.push_back(v + 1);
	// v から行ける各頂点 next_v について
	for (auto next_v : G[v]) {
		if (seen[next_v]) continue; // next_v が探索済だったらスルー
		dfs(G, next_v); // 再帰的に探索
	}
}

void cout_data(ll x) {
	cout << x << endl;
}


int main() {
	int A, B; cin >> A >> B;
	int ans = 1;
	for (int i = 2; i <= B;i++) {
		int a_1 = (A + i - 1) / i;
		int b_1 = B / i;
		if (a_1 > b_1)continue;
		if ((a_1 == 0) || (b_1 == 0))continue;
		if (a_1 != b_1) {
			if ((a_1 * i >= A) && (b_1 * i <= B)) {
				if (a_1 * i < b_1 * i)ans = i;
			}
		}

	}
	cout << ans << endl;
	return 0;
}

//std::cout << std::setprecision(2) << 3.141; // "3.1"