using System; using System.Collections.Generic; using System.Linq; using System.Text; class Program { static int[] I32ParseList(string[] strs) { List result = new List(); foreach (string s in strs) { result.Add(Int32.Parse(s)); } return result.ToArray(); } static int Saidaikouyakusuu(int a, int b) { int n = a % b; while (n != 0) { a = b; b = n; n = a % b; } return b; } static int Pyon(int n, int k) { if (n - k == 1 || k == 1) { return n - 1; } // 最大公約数を調べる int r = Saidaikouyakusuu(n, k); if (r == 1) { return n - 1; } return n / r - 1; } static void Main(string[] args) { int[] nk = I32ParseList(Console.ReadLine().Split(' ')); int cnt = Pyon(nk[0], nk[1]); Console.WriteLine(cnt.ToString()); } }