게리는 나무로 가득한 직사각형 밭을 가꾸는 꼼꼼한 정원사입니다. 밭에는 두 종류의 나무, 소나무와 낙엽송이 자랍니다. 나무의 건강을 위해 그는 지금까지 쓰던 일반 비료 대신 각 종류에 맞는 전용 비료를 쓰기로 했습니다.
나무가 너무 많아 비료를 나무마다 따로 줄 수는 없습니다. 그래서 게리는 밭을 둘로 나누는 울타리를 세우고, 한쪽에는 소나무용 비료를, 다른 쪽에는 낙엽송용 비료를 뿌리려고 합니다. 울타리는 밭 경계 위의 서로 다른 두 점을 잇는 직선을 따라 세워집니다.
각 비료는 자기 종류의 나무에는 좋지만 다른 종류의 나무에는 치명적입니다. 울타리를 세우고 각 쪽의 비료를 정하고 나면, 소나무 쪽에 있는 낙엽송과 낙엽송 쪽에 있는 소나무는 모두 베어 내야 합니다. 또한 울타리를 세우기 전에, 울타리 직선 위에 정확히 놓인 나무는 종류와 상관없이 베어 내야 합니다.
각 나무는 종류, 나이 등에 따라 정해진 가치를 가집니다. 게리는 베어 내는 모든 나무의 가치 합, 즉 손실이 최소가 되도록 울타리의 위치와 각 쪽의 비료를 정하려고 합니다.
나무들이 주어질 때, 가능한 최소 손실을 구하세요.
입력은 여러 개의 테스트 케이스로 이루어집니다.
각 테스트 케이스의 첫 줄에는 소나무의 수 $P$와 낙엽송의 수 $L$이 주어집니다 ($1 \le P, L \le 1000$). 이어지는 $P$개의 줄은 각각 소나무 하나를, 그 다음 $L$개의 줄은 각각 낙엽송 하나를 나타냅니다.
각 나무는 평면 위의 점으로, 세 정수 $X$, $Y$, $V$로 주어집니다. $X$와 $Y$는 좌표 ($-10^5 \le X, Y \le 10^5$), $V$는 가치입니다 ($1 \le V \le 1000$). 한 테스트 케이스 안에서 같은 위치에 있는 두 나무는 없습니다.
입력의 끝은 두 개의 0으로 이루어진 줄이며, 이 줄은 처리하지 않습니다.
각 테스트 케이스마다 가능한 최소 손실을 나타내는 정수 하나를 한 줄에 출력하세요.