#D3708. You Are Given Some Letters...
You Are Given Some Letters...
You Are Given Some Letters...
You are given a uppercase Latin letters 'A' and b letters 'B'.
The period of the string is the smallest such positive integer k that s_i = s_{i~mod~k} (0-indexed) for each i. Note that this implies that k won't always divide a+b = |s|.
For example, the period of string "ABAABAA" is 3, the period of "AAAA" is 1, and the period of "AABBB" is 5.
Find the number of different periods over all possible strings with a letters 'A' and b letters 'B'.
Input
The first line contains two integers a and b (1 ≤ a, b ≤ 10^9) — the number of letters 'A' and 'B', respectively.
Output
Print the number of different periods over all possible strings with a letters 'A' and b letters 'B'.
Examples
Input
2 4
Output
4
Input
5 3
Output
5
Note
All the possible periods for the first example:
- 3 "BBABBA"
- 4 "BBAABB"
- 5 "BBBAAB"
- 6 "AABBBB"
All the possible periods for the second example:
- 3 "BAABAABA"
- 5 "BAABABAA"
- 6 "BABAAABA"
- 7 "BAABAAAB"
- 8 "AAAAABBB"
Note that these are not the only possible strings for the given periods.
inputFormat
Input
The first line contains two integers a and b (1 ≤ a, b ≤ 10^9) — the number of letters 'A' and 'B', respectively.
outputFormat
Output
Print the number of different periods over all possible strings with a letters 'A' and b letters 'B'.
Examples
Input
2 4
Output
4
Input
5 3
Output
5
Note
All the possible periods for the first example:
- 3 "BBABBA"
- 4 "BBAABB"
- 5 "BBBAAB"
- 6 "AABBBB"
All the possible periods for the second example:
- 3 "BAABAABA"
- 5 "BAABABAA"
- 6 "BABAAABA"
- 7 "BAABAAAB"
- 8 "AAAAABBB"
Note that these are not the only possible strings for the given periods.
样例
5 3
5
</p>