#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;
typedef __int128 it;
typedef long double ldb;
int main(){
	ll s,p;
	scanf("%lld%lld",&s,&p);
	it sqt=it(s)*s-it(p<<2);
//	if(p*4<(s*2-1)){
//		puts("No");
//		return 0;
//	}
	ldb tmp=sqrt(ldb(s)*s-(p<<2));
	for(it i=max(tmp-1000000,ldb(0)),ed=tmp+1000000; i<=ed; ++i)
		if(i*i==sqt){
			if((i+s)&1){
				puts("No");
				return 0;
			}
			puts("Yes");
			return 0;
		}
	puts("No");
	return 0;
}
#include <bits/stdc++.h>
using namespace std;
/* * * *   * * *   	* * * */
#define mp make_pair
typedef long long ll;
typedef pair<int, int> pii;
/* * * *   * * *   	* * * */
/* *
 *
 * Too many mind, no mind.
 *
 * */
int main(){
	ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	//freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
	int a, b; cin >> a >> b;
	vector <ll> g, l;
	for (int i = 1; i <= min(a, b); ++i) {
		g.push_back(i);
		l.push_back(-i);
	}
	if (a > b) {
		for (int  i = b + 1; i <= a; ++i) {
			g.push_back(i);
			l.back() -= i;
		}
	} else if (b > a) {
		for (int  i = a + 1; i <= b; ++i) {
			l.push_back(-i);
			g.back() += i;
		}
	}
	for (auto &i : g) cout << i << ' ';
	for (auto &i : l) cout << i << ' ';
	cout << '\n';
	return 0;
}
