야영을 떠날 때가 됐다. 야영에는 이런저런 물건이 필요하고 그 물건을 직접 들고 다녀야 하니, 무엇이 정말 필요한지 정하는 일이 중요하다. 다행히 가져갈 물건은 이미 골라 두었고, 이제 남은 일은 물건을 배낭에 나눠 담는 것뿐이다.
배낭 하나에는 물건을 몇 개든 넣을 수 있지만, 넣은 물건의 무게 합이 그 배낭의 최대 적재량을 넘어서는 안 된다. 물건은 쪼갤 수 없어서 산 배낭의 용량을 다 쓰지 못할 수도 있다.
문제는 배낭이 아직 없어서 사야 한다는 점이다. 가게에는 최대 적재량이 서로 다른 배낭이 여러 개 있고, 값은 모두 같다. 물건을 전부 담을 수 있을 만큼 배낭을 사되, 돈은 가장 적게 쓰는 것이 목표다.
첫째 줄에 담을 물건의 개수 n과 가게에 있는 배낭의 개수 m이 주어진다. (1≤n≤24, 1≤m≤100)
둘째 줄에 n개의 정수 a1,a2,…,an이 주어진다. ai는 i번째 물건의 무게다. (1≤ai≤108)
셋째 줄에 m개의 정수 c1,c2,…,cm이 주어진다. ci는 i번째 배낭의 최대 적재량이다. (1≤ci≤108)
첫째 줄에 물건을 모두 담는 데 필요한 배낭의 최소 개수를 출력한다. 물건을 모두 담는 것이 불가능하면 대신 NIE를 출력한다.
첫 번째 예제에서는 첫 번째 배낭과 세 번째 배낭을 사면 된다. 가장 무거운 물건은 적재량이 11인 배낭에 넣고, 남은 물건은 적재량이 9인 배낭에 넣는다.