#include<bits/stdc++.h>
using namespace std;
int n,m,a,b,c,dis[1005],s;
bool bj[1005];
struct node{
int t,w;
};
vector<vector<node> >v;
vector<node>woshishabi;
struct p{
int t,w;
bool operator<(const p &a)const
{
return w>a.w;
}
}ls;
void dij()
{
priority_queue<p>q;
q.push({s,0});
for(int i=0;i<n;++i)
{
ls=q.top();
q.pop();
while(bj[ls.t])
{
ls=q.top();
q.pop();
}
bj[ls.t]=1;
int sz=v[ls.t].size();node o;
for(int i=0;i<sz;++i)
{
o=v[ls.t][i];
if(!bj[o.t]&&dis[o.t]>dis[ls.t]+o.w)
{
dis[o.t]=dis[ls.t]+o.w;
q.push({o.t,dis[o.t]});
}
}
}
return;
}
void cl()
{
for(int i=0;i<=n;++i)
{
bj[i]=0;
dis[i]=10000000;
}
dis[1]=0;
}
int main()
{
n=1;m=1;s=1;
for(int i=0;i<=10;++i)
{
v.push_back(woshishabi);
dis[i]=10000000;
}
cin>>a>>b;c=a+b;
v[1].push_back({2,a});
v[2].push_back({3,b});
dij();
cout<<dis[3];
return 0;
}