타일

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

문제

욕실 벽에 타일 nn개를 가로 한 줄, 높이 한 칸으로 붙여 장식용 띠를 만들려고 한다. 타일은 여러 종류가 있으며, 띠를 따라 놓인 무늬는 다음 두 주기 조건을 동시에 만족해야 한다.

  • 무늬가 kk칸마다 반복된다: 위치 ii의 타일과 위치 i+ki+k의 타일은, 두 위치가 모두 띠 안에 있는 한 같은 종류여야 한다.
  • 무늬가 ll칸마다 반복된다: 위치 ii의 타일과 위치 i+li+l의 타일은, 두 위치가 모두 띠 안에 있는 한 같은 종류여야 한다.

두 조건을 모두 지키면서, 무늬가 단조롭지 않도록 서로 다른 종류의 타일을 최대한 많이 쓰고 싶다.

nn, kk, ll이 주어질 때, 사용할 수 있는 서로 다른 타일의 최대 개수를 구하는 프로그램을 작성하라.

입력

첫째 줄에 정수 nn, 둘째 줄에 정수 kk, 셋째 줄에 정수 ll이 주어진다. (1n105001 \le n \le 10500, 1k,ln1 \le k, l \le n) kkllnn의 약수일 필요는 없다.

출력

길이 nn인 띠를 무늬가 kk칸마다도, ll칸마다도 반복되도록 붙일 때 사용할 수 있는 서로 다른 타일의 최대 개수를 한 줄에 출력한다.