# -*- coding=utf-8 -*- # 【考察】 # 割り算の存在しない形に式変形できれば良さそう。 def arithmetic_progression_summary(a_1 = 1, a_n = 10, d = 1, MOD = 1): """等差数列の和を計算する(a_nは一般的な項数ではなくて末項を指定する)\n a_1 = 1 a_n = 10 d = 1 => Σ[k=1, n=10] k => 55 Args: a_1 (int): 初項。 a_n (int): 末項。 d (int): 公差。 """ a_n = a_n % MOD result = a_n * (a_n + 1) result = result % MOD return result if __name__ == "__main__": Q = int(input()) for q in range(Q): n, m = list(map(int, input().split(" "))) mod = m * 2 a = arithmetic_progression_summary(1, n, 1, mod) print((a // 2) % mod)