using System;
using System.IO;
using System.Collections.Generic;
using static System.Console;
using static System.Math;
class Start{
  static void Solve(){
    var l=Rint();
    var n=Rint();
    var w=new List<int>();
    for(int i=0;i<n;i++)w.Add(Rint());
    w.Sort();
    var ans=0;
    var W=0;
    for(int i=0;i<n;i++)
      if(W+w[i]<=l){
        ans++;
        W+=w[i];
      }
    WriteLine(ans);
  }
  static void Main(){
    readcount=0;
    read=In.ReadToEnd().Split(' ','\n');
    var sw=new StreamWriter(OpenStandardOutput()){AutoFlush=false};
    SetOut(sw);
    Solve();
    Out.Flush();
  }
  const long MOD=1000000007L;
  static void Swap<T>(ref T a,ref T b){T c=a;a=b;b=c;}
  static string Read()=>read[readcount++];
  static int Rint()=>int.Parse(read[readcount++]);
  static long Rlong()=>long.Parse(read[readcount++]);
  static double Rdouble()=>double.Parse(read[readcount++]);
  static char Rchar()=>read[readcount++][0];
  static string[] read;static int readcount;
}
class Pair<T1,T2>:IComparable<Pair<T1,T2>>where T1:IComparable<T1>where T2:IComparable<T2>{
  public T1 F;public T2 S;
  public Pair(T1 f,T2 s){F=f;S=s;}
  public int CompareTo(Pair<T1,T2> p)=>F.CompareTo(p.F)!=0?F.CompareTo(p.F):S.CompareTo(p.S);
}