#include int main(void){ int l = 0 , n = 0 , i = 0; scanf("%d \n%d \n",&l,&n); int block[n]; //n個のブロックが存在するため、サイズを入力 for( i = 0 ; i < n ; i++ ){ scanf("%d ",&block[i]); i++; } //ブロックのサイズ並べ替え(昇順) for( i = 0 ; i < n ; i++ ){ for(int j = 0 ; j < n ; j++ ){ if(block[i] < block[j]){ int size = block[i]; block[i] = block[j]; block[j] = size; } } } int max = 0; for( i = 0 ; i < n ; i++ ){ max += block[i]; if(max >= l){ printf("%d\n",i-1); break; } } if(max < l){ printf("%d",n); } }