#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define P pair<int,int>
#define mk make_pair
const int N = 2e3 + 10;
void solve()
{
//构建长度为n的序列,和为s
//能否找到一个子序列 和为k或者s-k
int n,s,flag;
cin >> n >> s;
vector<int>v;
for(int i=1; i<=n-1; i++)
v.push_back(1);
v.push_back(s-(n-1));
//最后一个元素如果大于 元素的个数
//也就是说 选前n-1个 肯定小于n
//选上最后一个,就肯定大于 n
//那么n就凑不出来
if(s-n+1>n)
flag = 1;
else
flag = 0;
if(flag)
{
cout << "YES\n";
for(int i=0; i<n; i++)
cout << v[i] << ' ';
cout << '\n';
cout<< n;
}
else
cout<<"NO"<<endl;;
}
int main()
{
ios::sync_with_stdio(false);
int T;
T = 1;
while(T--)
solve();
return 0;
}