그레고리와 은행

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

그레고리는 큰 회사의 회계팀에서 일한다. 고객에게서 계좌 이체로 돈을 받고, 납품업체에 계좌 이체로 돈을 보낸다.

모든 이체는 도시에 하나뿐인 은행 지점에서 처리된다. 이 지점의 영업 방식은 특이하다. 하루에 허용되는 이체 종류가 한 가지뿐이어서, 어떤 날은 받는 이체만 되고 어떤 날은 보내는 이체만 된다. 게다가 그레고리가 하루에 처리할 수 있는 이체는 최대 한 건이고, 그 종류는 그날 지점이 허용하는 종류여야 한다. 이체 상대는 그레고리가 자유롭게 고른다. 상사는 그레고리가 아무것도 하지 않는 것을 싫어해서 매일 은행에 가서 이체를 시도하라고 요구한다.

그레고리가 처리해야 할 요청은 고객에게서 돈을 받는 요청 nn개와 납품업체에 돈을 보내는 요청 mm개다. 지점의 일정을 미리 알고 있으므로 각 고객과 각 납품업체의 이체 날짜를 직접 정한다. 일정에는 받는 날이 정확히 nn일, 보내는 날이 정확히 mm일 있어서 모든 요청이 서로 다른 날에 하나씩 배정된다.

그레고리가 관리하는 계좌의 처음 잔액은 0이다. 받는 날에는 그날 배정한 고객의 금액이 잔액에 더해진다. 보내는 날에는 그날 배정한 납품업체에 그 금액을 보내는데, 잔액이 보낼 금액보다 적으면 이체가 취소된다. 이때 계좌에서 돈은 한 푼도 나가지 않고 그레고리는 질책을 듣는다. 그 납품업체는 거래를 끊어 버리므로 나중에 다시 보낼 수도 없다.

돈을 보내지 못하는 납품업체의 수가 최소가 되는 배정을 찾아라.

입력

첫째 줄에 테스트 케이스의 개수 tt (1t10001 \le t \le 1000)가 주어진다.

각 테스트 케이스는 다음 형식으로 주어진다. 첫째 줄에 고객의 수 nn과 납품업체의 수 mm (1n,m1001 \le n, m \le 100)이 주어진다. 둘째 줄에 nn개의 정수 aia_i (1ai10001 \le a_i \le 1000)가 주어지며, aia_iii번째 고객이 그레고리의 회사에 보내는 금액이다. 셋째 줄에 mm개의 정수 bjb_j (1bj10001 \le b_j \le 1000)가 주어지며, bjb_jjj번째 납품업체에 보내야 하는 금액이다. 넷째 줄에 길이가 n+mn + m인 문자열 ss가 주어진다. ss+ nn개와 - mm개로 이루어져 있다. sskk번째 문자가 +이면 kk번째 날에 돈을 받을 수 있고, -이면 kk번째 날에 돈을 보낼 수 있다.

출력

각 테스트 케이스마다 그레고리가 돈을 보내지 못하는 납품업체 수의 최솟값을 한 줄에 하나씩 출력한다.