#include <stdio.h>
#include <stdlib.h>


int comp( const void *c1, const void *c2 );

int main(void){

    int l, n;
    scanf("%d %d",&l, &n);
    int blocks[n] ;
    int i;
    for (i=0;i<n;i++){
        scanf("%d", &blocks[i]) ;
    }
    // sort blocks
    qsort(blocks, n, sizeof(int), comp);

    for(i=0;i<n;i++){
      //  printf("%d", blocks[i]) ;
    }
    // check if blocks can be accomdated in bocks(L)
    int total = 0;
    int answer;
    for(i=0;i<n;i++){
        total += blocks[i];
        if(total > l){
            break; 
        }
        answer = i + 1;
    }
    printf("%d\n", answer);

}

int comp( const void *c1, const void *c2 )
{
  int tmp1 = *(int *)c1;
  int tmp2 = *(int *)c2;

  if( tmp1 < tmp2 )  return -1;
  if( tmp1 == tmp2 ) return  0;
  if( tmp1 > tmp2 )  return  1;
}