import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.sql.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
import java.util.stream.Collectors;



public class Problems {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String line = reader.readLine();
        StringTokenizer tokenizer = new StringTokenizer(line, " ");

        int n = Integer.parseInt(tokenizer.nextToken());
        int k = Integer.parseInt(tokenizer.nextToken());

        int[] gangsters = new int[n];

        line = reader.readLine();
        tokenizer = new StringTokenizer(line, " ");

        for(int i=0; i<n; i++){
            gangsters[i] = Integer.parseInt(tokenizer.nextToken());
        }

        for (int i = 0; i < n; i++) {
            List<List<Integer>> subsets = new ArrayList<>();
            ArrayList<Integer> nums = (ArrayList<Integer>) Arrays.stream(gangsters).boxed().collect(Collectors.toList());
            nums.remove(Integer.valueOf(gangsters[i]));

            findSubsets(subsets, nums, new ArrayList<>(), 0);

            for (int j = 1; j < n; j++) {
                int c = 0;
                for (List<Integer> s : subsets) {
                    if (s.size() == j) {
                        int sum = 0;
                        for (Integer integer : s) {
                            sum += integer;
                        }
                        if (sum > k) {
                            continue;
                        }
                        sum += gangsters[i];
                        if (sum > k) {
                            c++;
                        }
                    }
                }
                System.out.print(c);
                if (j != n - 1) {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }

    // https://www.geeksforgeeks.org/backtracking-to-find-all-subsets/
    public static void
    findSubsets(List<List<Integer>> subset, ArrayList<Integer> nums, ArrayList<Integer> output, int index)
    {
        // Base Condition
        if (index == nums.size()) {
            subset.add(output);
            return;
        }

        // Not Including Value which is at Index
        findSubsets(subset, nums, new ArrayList<>(output), index + 1);

        // Including Value which is at Index
        output.add(nums.get(index));
        findSubsets(subset, nums, new ArrayList<>(output), index + 1);
    }
}


