#include <bits/stdc++.h>
using namespace std;
#define int long long
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define pb push_back
#define IOS ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define Test int T;cin>>T;while(T--)
#define ls lower_bound
#define up upper_bound
#define bs binary_search
#define S second
#define F first
#define vi vector<int>  
#define pii pair<int,int>
#define vpii vector<pii>
#define vvi vector<vi>
#define gcd(a,b) __gcd((a),(b))
#define lcm(a,b) ((a)*(b))/gcd((a),(b))
#define m_n(v) *min_element(all(v))
#define m_x(v) *max_element(all(v))
#define _(a) for(auto &i:a)
#define nl cout<<"\n";
#define momo(k) memset(k,0,sizeof(k))
#define momi(k) memset(k,-1,sizeof(k))
// #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds;
// typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>indexed_set;

// const int mod = 1e9+7;
// int power(int x, int y,int mod){
//     int res = 1;
//     while (y){
//         if (y & 1)
//         res = (res*x)%mod;
//         y = y>>1;
//         x = (x*x)%mod;
//     }
//     return res;
// }
// modInv = power(a,m-2,m)

// int fac[10009];

// void factorial(int n){
// 	fac[0]=1;
// 	for(int i=1;i<=n;i++)fac[i]=(i*fac[i-1])%mod;
// }
// // 
// int ncr(int n,int r){
// 	return (fac[n]*((power(fac[r],mod-2,mod)*power(fac[n-r],mod-2,mod))%mod))%mod;
// }
// vector<int> prime;
// void sieve(){
//     bool arr[200000]={0};
//     prime.pb(2);
//     for(int i=3;i<200000;i+=2){
//         if(arr[i])continue;
//         for(int j=i*i;j<200000;j+=i) arr[j]=1;
//         prime.pb(i);
//     }
// }
// const int N=1e18+2;
const int N = 2e5+9; 
const int mod = 1e9+7;
void doper(){
	#ifndef ONLINE_JUDGE
	freopen("input.txt","r",stdin);
	freopen("output.txt","w",stdout);
	freopen("error.txt","w",stderr);
	#endif
}  

int32_t main(){
    // doper();
    IOS;
	int a,b;
	cin>>a>>b;
	if(a > b){
		int s = 0;
		for(int i=1;i<=a;i++) {
			cout<<i<<" ";
			s += i;
		}
		for(int i=1;i<b;i++){
			cout<<-1*i<<" ";
			s -= i;
		}
		cout<<-1*s;
	}
	else if(a == b){
		for(int i=1;i<=a;i++) cout<<i<<" ";
		for(int j=1;j<=b;j++) cout<<-1*j<<" ";
	}
	else{
		int s = 0;
		for(int i=1;i<=b;i++) {
			cout<<-1*i<<" ";
			s -= i;
		}
		for(int i=1;i<a;i++){
			cout<<i<<" ";
			s += i;
		}
		cout<<-1*s;
	}
    return 0;
}   
#include <iostream>
#include <stdio.h>
#include <vector>

//martin02

using namespace std;

int main() {
	int a, b;
	scanf("%d %d", &a, &b);
	vector<int> v(a + b, 0);
	for (int i = 0; i < a; i++) {
		v.at(i) = i + 1;
	}

	for (int i = a; i < a + b; i++) {
		v.at(i) = -1 * (i - a + 1);
	}

	if (a * (a + 1) / 2 - b * (b + 1) / 2 > 0) {
		v.at(a + b - 1) -= a * (a + 1) / 2 - b * (b + 1) / 2;
	}
	else {
		v.at(a - 1) -= a * (a + 1) / 2 - b * (b + 1) / 2;;
	}

	for (int i = 0; i < a + b; i++) {
		printf("%d ", v.at(i));
	}
	printf("\n");

	return 0;
}