// https://qiita.com/Raclamusi/items/660f0f42c57e4371ed78 #ifdef INCLUDED_MAIN auto solve(ll a, ll b, int c, const std::vector &d, const std::vector &e) { // TODO: edit here vc ans(c); rep(i, c) { if (d[i] == 0) { if (e[i] == 0) continue; ans[i] = (e[i] - 1) % b + 1; continue; } if (e[i] == 0) { ans[i] = (d[i] - 1) % b + 1; continue; } ll from = (d[i] - 1) / b; ll to = (e[i] - 1) / b; if (from == to) { ans[i] = abs(d[i] - e[i]); } else { ans[i] = (d[i] - 1) % b + 1 + (e[i] - 1) % b + 1; } } return ans; } // generated by oj-template v4.8.1 (https://github.com/online-judge-tools/template-generator) int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); cout << fixed << setprecision(15); // ref:https://rsk0315.hatenablog.com/entry/2020/05/09/170315 // ll T; // cin >> T; // rep(i, T)solve(); ll a, b; int c; std::cin >> a >> b >> c; std::vector d(c), e(c); rep(i, c) { std::cin >> d[i] >> e[i]; } auto f = solve(a, b, c, d, e); rep(i, c) { std::cout << f[i] << '\n'; } return 0; } #else // #ifndef ONLINE_JUDGE // #define _GLIBCXX_DEBUG 1 //[]で配列外参照をするとエラーにしてくれる。上下のやつがないとTLEになるので注意 ABC311Eのサンプル4みたいなデバック中のTLEは防げないので注意 // #endif #ifdef ONLINE_JUDGE #define NDEBUG #include #endif #include // # include // # include // # include // namespace mp = boost::multiprecision; // // 任意長整数型 // using Bint = mp::cpp_int; // // 仮数部が32桁(10進数)の浮動小数点数型 // using Real32 = mp::number>; // // 仮数部が1024桁(10進数)の浮動小数点数型 // using Real1024 = mp::number>; // // ついでに有理数型 // using Rat = boost::rational; using namespace atcoder; using namespace std; using ll = long long; using ld = long double; #define double ld ll INF = 2e18; using P = pair; #define pb push_back #define rep(i, n) for (ll i = 0; i < (ll)(n); i++) #define reprev(i, n) for (ll i = (ll)(n) - 1; i >= 0; i--) #define reps(i, n) for (ll i = 1; i <= (ll)(n); i++) #define for_(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++) #define all(v) v.begin(), v.end() template inline bool chmin(T &a, const T &b) { bool c = a > b; if (c) a = b; return c; } template inline bool chmax(T &a, const T &b) { bool c = a < b; if (c) a = b; return c; } template inline T ceil(T a, T b) { return (a + (b - 1)) / b; } using mint = modint998244353; // using mint = modint1000000007; // using mint = static_modint<10>;//使うときはコメントアウトを外す template using vc = vector; template istream &operator>>(istream &i, vc &v) { rep(j, (ll)size(v)) i >> v[j]; return i; } template ostream &operator<<(ostream &o, const vc &v) { rep(j, (ll)size(v)) { if (j) o << " "; o << v[j]; } o << endl; return o; } #define INCLUDED_MAIN #include __FILE__ #endif