/*----------------------
Koniecko Łukasz - lukon
lukon10@wp.pl
----------------------*/
/*---------------------------------------- 
Potyczki Algorytmiczne 2014, runda 2
Zadanie: PAK
Pakowanie [A]
-----------------------------------------*/

#include <iostream>
#include <cstdlib>

using namespace std;

int compare (const void * a, const void * b)
{
  return ( *(int*)b - *(int*)a );
}

int dopasowanie(int przedmioty[], int n, int plecaki[], int m){
	int nr_prz = 0; //ile przedmiotów już w plecaku
	
	for(int i=0; i < m; i++){
		for(int j=0; j < n; j++){			
			if(przedmioty[j]==0) continue;
				
			if(plecaki[i] >= przedmioty[j]){
				plecaki[i] -= przedmioty[j];
				przedmioty[j] = 0; //wyzerowanie
				nr_prz++;
				if(nr_prz == n) return i+1; //nie ma więcej przedmiotów
			}		
		}		
	}
	return -1; //nie udało się
} 

int main(){
	
	int n,m;
	cin >> n; //ilosc przedmiotów
	cin >> m; //ilosc plecaków
	
	int a[n]; //tablica z przedmiotami
	int c[m]; //tablica z plecakami
	
	for(int i=0; i < n; i++){
		cin >> a[i];
	}
	for(int i=0; i < m; i++){
		cin >> c[i]; 
	}
		
	qsort (a, n, sizeof(int), compare);
	qsort (c, m, sizeof(int), compare);
	
	int wynik = dopasowanie(a,n,c,m);
	if(wynik > 0){
		cout << wynik;
	}
	else
		cout << "NIE";	
}
