using System;
using System.Linq;
public class Program {
public static void Main() {
string line = Console.ReadLine();
string[] tokens = line.Split();
int n = int.Parse(tokens[0]);
long m = long.Parse(tokens[1]);
long[] result = ConstructArrayMinMax(n, m);
Console.WriteLine(string.Join(" ", result.OrderBy(r => r)));
}
static long[] ConstructArrayMinMax(int n, long m) {
long[] arr = new long[n];
long remaining = m;
for (int i = 0; i < n; i++) {
// 剩余元素每个至少分到1,所以当前元素最大为 remaining - (n - i - 1)
long maxPossible = remaining - (n - i - 1);
arr[i] = Math.Min(maxPossible, 1 + (remaining / (n - i)));
remaining -= arr[i];
}
return arr;
}
static int SumArray(int[] arr) {
int sum = 0;
foreach (int num in arr) {
sum += num;
}
return sum;
}
}