그림
시간 제한2초메모리 제한1024 MB
각 크기가 다음 크기의 약수인 정사각형 n종류로 h x w 벽을 겹침 없이 빈틈없이 채우는 최소 개수를 구하고, 불가능하면 -1을 출력합니다.
문제
Bajtazar가 막 새 집으로 이사했다. 선반에 낭송 대회와 바이토샤 시간 내 요들 대회에서 받은 트로피를 진열하고 나니, 벽 한 면이 비어 있었다. 그는 그 벽을 그림으로 채우고 싶어 한다.
벽은 미터 크기의 직사각형이다. Bajtazar와 가까운 근처 화상은 종류의 그림을 파는데, 각 종류는 수량에 제한이 없다. 같은 종류의 그림은 모두 크기가 같고, 번째 종류의 그림은 한 변의 길이가 미터인 정사각형이다. 서로 다른 두 중 하나는 다른 하나로 나누어떨어진다.
Bajtazar는 가격에는 신경 쓰지 않지만, 벽에 빈 곳이 남지 않기를 원한다. 그림끼리는 겹칠 수 없으나 변을 맞대는 것은 괜찮다. 화상에게 여러 번 오가고 싶지 않으므로 가능한 한 적은 수의 그림을 사려고 한다. 벽 전체를 덮는 데 필요한 그림의 최소 개수를 구하고, 벽을 덮는 것이 불가능하면 그 사실을 알아내라.
입력
첫 줄에는 벽의 가로와 세로를 나타내는 정수 와 ()가 주어진다.
둘째 줄에는 그림의 종류 수 ()이 주어진다.
셋째 줄에는 각 종류 그림의 크기를 나타내는 서로 다른 정수 (, , 은 로 나누어떨어짐)이 주어진다.
출력
벽을 덮을 수 있으면 벽을 덮는 데 필요한 그림의 최소 개수를 한 줄에 출력한다. 덮을 수 없으면 -1을 출력한다.
힌트
첫 번째 예제에서 Bajtazar는 1×1 그림 6개, 3×3 그림 2개, 6×6 그림 1개, 총 9개로 벽을 덮을 수 있다. 배치 예시는 아래 그림과 같다.

두 번째 예제에서는 벽을 정확히 덮는 것이 불가능하다.