#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;

#pragma GCC optimize("Ofast")
#define watch(x) cout<<(#x)<<"="<<(x)<<'\n'
#define mset(d,val) memset(d,val,sizeof(d))
#define setp(x) cout<<fixed<<setprecision(x)
#define forn(i,a,b) for(int i=(a);i<(b);i++)
#define fore(i,a,b) for(int i=(a);i<=(b);i++)
#define pb push_back
#define F first
#define S second
#define pqueue priority_queue
#define fbo find_by_order
#define ook order_of_key
typedef long long ll;
typedef pair<ll,ll> ii;
typedef vector<ll> vi;
typedef vector<ii> vii;
typedef long double ld;
template<typename T>
using pbds = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
void amin(ll &a, ll b){ a=min(a,b); }
void amax(ll &a, ll b){ a=max(a,b); }
void YES(){cout<<"YES\n";} void NO(){cout<<"NO\n";}
void SD(int t=0){ cout<<"PASSED "<<t<<endl; }
const ll INF = ll(1e18);
const int MOD = 998244353;

const bool DEBUG = 0;
const int MAXN = 100005;

int main()
{
	ios_base::sync_with_stdio(0); cin.tie(0);
	
	ll b,c; cin>>b>>c;
	vii v;
	v.pb({b,b-c/2}); //subtract only
	v.pb({-b,-b-(c-1)/2}); //flip then subtract
	v.pb({-b,-(b-(c-1)/2)}); //subtract then flip
	v.pb({b,(b+(c-2)/2)}); //flip, subtract, flip
	
	forn(i,0,v.size()) if(v[i].F>v[i].S) swap(v[i].F,v[i].S);
	sort(v.begin(), v.end());
	ll ans=0,l=v[0].F,r=v[0].S;
	
	//for(ii tmp: v) cout<<tmp.F<<" "<<tmp.S<<'\n';
	
	forn(i,1,v.size())
	{
		if(v[i].F>r)
		{
			ans+=r-l+1;
			l=v[i].F, r=v[i].S;
		}
		else
		{
			r=max(r,v[i].S);
		}
	}
	ans+=r-l+1;
	
	cout<<ans<<'\n';	
	return 0;
}

#include <bits/stdc++.h> // include every standard library
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;     
  
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef long double ld;
typedef vector<bool> vb;
typedef vector<vb> vvb;
typedef vector<pll> vpll;
typedef vector<pii> vpii;

#define oset tree<int, null_type,less_equal<int>, rb_tree_tag,tree_order_statistics_node_update>
#define in() freopen("test.txt","r",stdin)
#define out() freopen("output.txt","w",stdout)
#define vt vector
#define pb push_back
#define eb emplace_back
#define pob pop_back
#define mk make_pair
#define fi first
#define se second
#define nl "\n"
#define MOD 1000000007
#define all(v) v.begin(),v.end()
#define s(v) v.size()
#define test ll t;cin>>t;while(t--)
#define read0(v,n) for(int i=0;i<n;i++)cin>>v[i];
#define read1(v,n) for(int i=1;i<=n;i++)cin>>v[i];
#define trav(a,x) for (auto& a: x)
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);
#define cut(x) {cout<<x;return 0;}
#define print(x) {cout<<x<<nl;}
#define FOR(i,a,b) for(int i=a;i<b;++i)
#define FORB(i,a,b) for(int i=a;i>=b;--i)
#define err1(a) {cout<<#a<<' '<<a<<nl;}
#define err2(a,b) {cout<<#a<<' '<<a<<' '<<#b<<' '<<b<<nl;}
#define mem(a,b) memset(a,b,sizeof(a))
#define maxn 100000
#define dis(ar,n) {for(int i=0;i<(n);++i) cout << ar[i] << " "; cout << nl;}
ll gcd(ll a, ll b){if (b==0)return a;return gcd(b, a % b);}
ll lcm(ll a,ll b){return (a*b)/gcd(a,b);}
ll bpow(ll a, ll b){ll ans=1;while(b){if(b&1)ans=(ans*a)%MOD;b/=2;a=(a*a)%MOD;}return ans;}
vt<pair<int,int>> dir = {{1,0},{-1,0},{0,1},{0,-1}};
int main(){
 	fast
	ld a,b;
	cin >> a >> b;
    cout << a*(b/100.0) << endl;	
	return 0;
}
