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;
    }

}