import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class No156 { public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new InputStreamReader( System.in)); String[] nm = br.readLine().split(" "); int N = Integer.parseInt(nm[0]); int M = Integer.parseInt(nm[1]); String[] CStr = br.readLine().split(" "); int[] C = new int[N]; for (int i = 0; i < N; i++) { C[i] = Integer.parseInt(CStr[i]); } System.out.println(solve(N, M, C)); } catch (Exception e) { System.err.println("Error:" + e.getMessage()); } } static int solve(int N, int M, int[] C){ Arrays.sort(C); int emptyCount = 0; for (int i = 0; i < C.length; i++) { if (C[i] <= M) { M = M - C[i]; emptyCount++; } else { break; } } return emptyCount; } }