#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
/*............................................................................*/ 
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
/* find_by_order(x) give iterator of the index x 
   order_by_key(x) give the position where x will be placed*/
#define int long long
#define lop(i,a,b,c) for (int i=a;i<b;i+=c)
#define rlop(i,a,b,c) for (int i=a-1;i>=b;i-=c)
#define prii pair <int,int>
#define PB push_back
#define S second
#define F first
#define B begin()
#define E end()
#define count_1(x) __builtin_popcount(x)

/*......................................................................*/

void solve(){
	int t,n;cin>>t>>n;
	int lw=1;int hg=1e15;int md;int ans;
	while (lw<=hg){
		md=(lw+hg)/2;
		int z=(md*t)/100;
		if (z<n){
			ans=md;lw=md+1;
		}
		else hg=md-1;
	}ans+=n;cout<<ans<<"\n"; return ;
	if (n%t==0){
		int a=n/t;a--;
		int b=100+t;b=b*a;
		cout<<b+t*ans<<"\n";return ;
	}
	int a=n/t;
		int b=100+t;b=b*a;
		cout<<b+(n%t)*ans<<"\n";return ;
}
int32_t main(){
	int t;t=1;
	//cin>>t;
	while (t--){
		solve();
	}
	return 0;
}
#include<cstdio>
long long a,b;
int main(){
	scanf("%lld%lld",&a,&b);
	printf("%lld %lld\n",(a+b)/2,(a-b)/2);
	return 0;
}