맛집 가이드
시간 제한2초메모리 제한1024 MB
두 평론가의 순위가 주어질 때, 별점이 높은 식당이 두 순위 모두에서 위에 오도록 각 등급에 K개 이상씩 나누는 최대 등급 수를 구합니다.
문제
윤이는 UNIST 주변 음식점을 소개하는 가이드 앱 "UNIST 가이드"를 만들려고 한다. 윤이는 근처 음식점 중 개를 추천하기로 하고, 음식점에 번부터 번까지 번호를 붙였다.
윤이는 음식점 정보를 조사하다가 음식 평론가 동규와 원이가 각각 개의 음식점에 순위를 매긴 자료를 찾았다. 윤이는 이 두 순위표를 바탕으로 음식점 등급을 매기려고 한다. 등급은 양의 정수 에 대해 이상 이하의 정수 별점으로 나타낸다. 별점이 높을수록 맛있는 음식점이다.
음식점 등급은 두 평론가의 순위표에 어긋나지 않아야 한다. 즉, 음식점 X의 등급이 음식점 Y보다 높다면, 두 평론가의 순위표에서 모두 X의 순위가 Y보다 높아야 한다. 그 역은 성립하지 않아도 된다.
또한 각 등급에는 그 등급을 받은 음식점이 적어도 개 있어야 한다.
윤이는 음식점 정보가 구체적일수록 가이드의 신뢰도가 올라간다고 보고, 등급을 최대한 세분화하려고 한다. 즉, 최고 별점 가 최대한 커지도록 등급을 매기려고 한다. 조건을 만족하도록 등급을 매겼을 때, 등급의 개수는 최대 얼마인가?
입력
첫 번째 줄에 음식점의 개수 과 등급별 최소 음식점 개수 가 공백으로 구분되어 주어진다. ()
두 번째 줄에 평론가 동규가 평가한 순위가 높은 순서대로 개의 음식점 번호가 공백으로 주어진다.
세 번째 줄에 평론가 원이가 평가한 순위가 높은 순서대로 개의 음식점 번호가 공백으로 주어진다.
음식점 번호는 이상 이하의 정수이며, 각 줄 안에서 중복되지 않는다.
출력
윤이가 등급을 최대한 세분화하도록 매겼을 때, 등급의 개수를 출력한다.