#nullable enable #region var _input = Array.Empty(); var _iter = 0; string String() { while (_iter >= _input.Length) (_input, _iter) = (Console.ReadLine()!.Split(' '), 0); return _input[_iter++]; } T I() where T : IParsable => T.Parse(String(), null); #endregion var x = I(); var y = I(); var n = I(); var ans = new long[n]; for (var i = 0; i < n; i++) { var u = I(); var v = I(); if (v < u) (u, v) = (v, u); v--; var (vp, vq) = long.DivRem(v, y); if (u == 0) ans[i] = vq + 1; else { u--; var (up, uq) = long.DivRem(u, y); if (up == vp) ans[i] = vq - uq; else ans[i] = uq + vq + 2; } } Console.WriteLine(string.Join(Environment.NewLine, ans));