#include using namespace std; typedef pair P; typedef pair> PP; typedef long long ll; const double EPS = 1e-9; const int INF = 1e9; const int MOD = 1e9+7; int dy[] = {0,1,0,-1}; int dx[] = {1,0,-1,0}; int compress(vector& X){ vector x = X; sort(x.begin(),x.end()); x.erase(unique(x.begin(),x.end()),x.end()); for(int i=0;i >& sum) { if(l-1<0 && u-1<0)return sum[d][r]; if(l-1<0)return sum[d][r] - sum[u-1][r]; if(u-1<0)return sum[d][r] - sum[d][l-1]; return sum[d][r] - sum[d][l-1] - sum[u-1][r] + sum[u-1][l-1]; } int main(void) { int N,B; cin >> N >> B; vector x(N),y(N),p(N); for(int i=0;i> x[i] >> y[i] >> p[i]; } //座標圧縮 int w = compress(x),h = compress(y); //2次元配列に代入 vector> v(h,vector(w)),t(h,vector(w)); for(int i=0;i