#include using namespace std; #include using namespace atcoder; int main() { int N, B, Q; cin >> N >> B >> Q; vector X(Q+1), Y(Q+1), Z(Q+1); X[0] = Y[0] = Z[0] = 1; for( int i = 1; i <= Q; i++ ) { X[i] = X[i-1]+1; Y[i] = 3*Y[i-1]+2*X[i]*Z[i-1]; Z[i] = 3*Z[i-1]; X[i] %= B; Y[i] %= B; Z[i] %= B; } fenwick_tree fw(N+1); for( int i = 1; i <= Q; i++ ) { int L, M, R; cin >> L >> M >> R; fw.add(L-1, 1); fw.add(R, -1); int s = fw.sum(0, M); cout << X[s] << " " << Y[s] << " " << Z[s] << endl; } }