#include <bits/stdc++.h>
//#include <atcoder/all>
using namespace std;
//using namespace atcoder;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define rep2(i, s, n) for (int i = (s); i < (int)(n); i++)
#define mydeb(fmt, ...) fprintf(stderr, fmt, __VA_ARGS__)
//#define mydeb(fmt, ...) 

int main()
{
    int64_t t,n;
    cin >> t >> n;
    cout << (n*100+(t-1))/t*(100+t)/100 -1 << endl;
}


#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)

//一次元配列に入力する関数 vin(n);
vector<string> vin(int n) {
	vector<string> vec(n);
	for (int i = 0; i < n; i++)
	  cin >> vec.at(i);
	return vec;
}

//一次元配列から順番に出力する関数 cout<<"a:";vout(a,n);cout<<endl;
void vout(vector<long long> vec, int n) {
	for (int i = 0; i < n; i++)
	cout << vec.at(i) << ",";
	return;
}

//debug用出力関数 dout("n",n);
void dout(string s, int n) {
	cout << s << ":" << n << endl;
	return;
}


int main() {

  	long long n,ans = 0;
	cin >> n;
	unordered_set<long long> a;
	//cout<<"a:";vout(a,n);cout<<endl;
	
	long long i = 2,j = 2,m = 0;
	while(i * i <= n){//dout("i",i);
		j = 2;
		m = 0;
		while(m <= n){
			m = pow(i,j);//dout("j",j);
          	//m = i * i;
          	//dout("m",m);
			if(m <= n){
				a.insert(m);//dout("m",m);
			}
			j++;
		}
		i++;
	}
	//cout<<"a:";vout(a,n);cout<<endl;
	
	ans = n - a.size();
	cout << ans << endl;
}