#include using namespace std; typedef long long ll; typedef vector vint; typedef pair pint; typedef vector vpint; #define rep(i,n) for(int i=0;i<(n);i++) #define reps(i,f,n) for(int i=(f);i<(n);i++) #define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();it++) #define all(v) (v).begin(),(v).end() #define pb push_back #define mp make_pair #define fi first #define se second #define chmax(a, b) a = (((a)<(b)) ? (b) : (a)) #define chmin(a, b) a = (((a)>(b)) ? (b) : (a)) const int MOD = 1e9 + 7; const int INF = 1e9; double c, d; double ans; double search(double a){ double tc = c, td = d; double ret = 0.0; if(tc >= a * 3.0 / 4.0 && td >= a * 1.0 / 4.0){ tc -= a * 3.0 / 4.0; td -= a * 1.0 / 4.0; ret += a * 1000.0; }else{ return 0; } //残りはすべてBを作る。 ret += 2000.0 * (min(tc * 7.0 / 2.0, td * 7.0 / 5.0)); ans = ret; return ret; } int main(void){ cin >> c >> d; //下凸関数を三分探索 double l = 0.0; double r = 2000.0; rep(i, 10000){ //m は、製品Aを作る量 double m1 = (l * 2.0 + r) / 3.0; double m2 = (l + r * 2.0) / 3.0; if(search(m1) < search(m2)){//右が高い l = m1; }else{//左側が高い r = m2; } } printf("%.9f\n", ans); return 0; }