import std.stdio; import std.string; import std.conv; import std.array; import std.algorithm; import std.range; import std.exception; /// solve =================== T solve(T)(T[] C, T M, T acc = 0){ if(M < C[0]) return acc; else if(M == C[0]) return acc + 1; return solve(C[1..$], M-C[0], acc+1); } /// main =================== void main(){ int N, M, res, cumulative; auto NM = readln.strip.split(" ").map!(to!int).array; auto C = readln.strip.split(" ").map!(to!int).array.sort; solve(C, NM[1]).writeln; }