import java.io.*; import java.util.*; import java.util.stream.*; // 処理 class Process { private int M; private int[] C; Process(int M, int[] C) { this.M = M; this.C = C; } int getResult() { int[] sortedC = IntStream.of(C).sorted().toArray(); int sum = 0; int emptyBoxCount = 0; for(int i = 0; i < sortedC.length; i++) { sum += sortedC[i]; if(sum > M) { break; } emptyBoxCount++; } return emptyBoxCount; } } public class Main { public static void main(String[] args) throws IOException { var bufferedReader = new BufferedReader(new InputStreamReader(System.in)); var printWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))); // 入力 int[] input = Stream.of(bufferedReader.readLine().trim().split("[ ]+")).mapToInt(Integer::parseInt).toArray(); int N = input[0]; int M = input[1]; int[] C = Stream.of(bufferedReader.readLine().trim().split("[ ]+")).mapToInt(Integer::parseInt).toArray(); // 出力 printWriter.println((new Process(M, C)).getResult()); bufferedReader.close(); printWriter.close(); } }