var GetSumOfCandy = function(Candy){
  var Result = 0;
  for(var i in Candy){
    Result += Candy[i];
  }
  return Result;
}
var Main = function(Input){
  var Lines = Input.split('\n');
  var Props = Lines[0].split(' ').map(function (elem){return Number(elem);});
  var N = Number(Props[0]); // 子供の数
  var X = Number(Props[1]); // キャンディの数
  var Candy = Lines[1].split(' ').map(function (elem){return Number(elem)}).sort();;
  
  // キャンディの数が、子供が欲する数と一致すれば、全員満足する
  var SumOfCandy = GetSumOfCandy(Candy);
  if(X == SumOfCandy){
    console.log(N);
    return;
  } else if(X > SumOfCandy){
    // 過剰な場合は1人以外は満足する
    console.log(N-1);
    return;
  }

  // それ以外の場合(キャンディが足りない)
  // 欲する数が少ない方から配る
  var Result = 0;
  for(var i = 0;i<N;++i){
    X -= Candy[i];
    if(X >= 0){
      ++Result;
    } else {
      break;
    }
  }
  console.log(Result);
}

Main(require('fs').readFileSync('/dev/stdin', 'utf8'));
