
    return aNum - bNum;
}
int main(void){
  int n, x;
  int a[105];
  scanf("%d %d", &n,&x);
  
  //int sum = 0;
  for(int i=0;i<n;i++){
    scanf("%d", &a[i]);
    //sum+=a[i];
  }
  /*
  if(x>sum){
    printf("%d", n-1); 
    return 0;
  }
  */
  
  
  qsort(a, n, sizeof(int), compareInt);
  int i,s=0;int ans=0;
  for(i=0;i<n&&s<=x;i++){
    s+=a[i];
  }
    if(s==x && i==n){
      ans = n;     
    }else if(s!=x && i==n){
      ans = n-1;      
    }
  else if(i!=n){
    ans = i-1;
  }
  printf("%d", ans);
  return 0;
}
  
    return aNum - bNum;
}
int main(void){
  int n, x;
  int a[105];
  scanf("%d %d", &n,&x);
  
  //int sum = 0;
  for(int i=0;i<n;i++){
    scanf("%d", &a[i]);
    //sum+=a[i];
  }
  /*
  if(x>sum){
    printf("%d", n-1); 
    return 0;
  }
  */
  
  
  qsort(a, n, sizeof(int), compareInt);
  int i,s=0;int ans=0;
  for(i=0;i<n&&s<=x;i++){
    s+=a[i];
  }
    if(s==x && i==n){
      ans = n;     
    }else if(s!=x && i==n){
      ans = n-1;      
    }
  else if(i!=n){
    ans = i-1;
  }
  printf("%d", ans);
  return 0;
}
  