#include<stdio.h>
#include<iostream>
#include<fstream>
#include<string>
#include<algorithm>
#include <iomanip> //小数点对齐
using namespace std;
bool cmp(int a, int b)
{
return a > b;
}
int main()
{
int l, n; //l为长度,n为盒子的个数
ifstream cin("data.txt");
while (cin >> l >> n)
{
int *arr = new int[n]; //arr[i]为每个盒子的长度
int i, sum = 0;
for (i = 0; i < n; i++)
cin >> arr[i];
sort(arr, arr + n, cmp); //按盒子长度递减排序
for (i = 0; i < n; i++)
{
if ((sum + arr[i]) < l)
sum += arr[i];
else
break;
}
if (i == n)
cout << "impossible" << endl;
else
cout << i+1 << endl;
}
system("pause");
return 0;
}