#include<bits/stdc++.h>

using namespace std;
#define int long long
#define mod 1000000007
#define fi first
#define se second
#define endl '\n'
#define no cout<<"No"<<endl
#define NO cout<<"NO"<<endl
#define YES cout<<"YES"<<endl
#define yes cout<<"Yes"<<endl
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define vi vector<int>
#define vii vector<vector<int>>
#define viii vector<vector<vector<int>>>
#define vn vector<node>
#define vb vector<bool>
#define vbb vector<vector<bool>>
#define vbbb vector<vector<vector<bool>>>
using pii = pair<int, int>;
const int inf = 1e18;
using pdd = pair<double, double>;
const double PI = acos(-1);
const double eps = 1e-6;
const int N = 1e5 + 10;
int n, m;

void solve() {
	cin >> n >> m;
	vii dp(n + 2, vi(m + 2));
	dp[1][1] = 1;
	for (int i = 1; i <= n + 1; i++)
		for (int j = 1; j <= m + 1; j++)
			if (i > 1 || j > 1) dp[i][j] = dp[i- 1][j] + dp[i][j - 1]; // 从左边和上方转移过来
	cout << dp[n + 1][m + 1] << endl;
}

signed main() {
    int _ = 1;
//    cin >> _;
    while (_--) {
        solve();
    }
    return 0;
}