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); }