#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 7;
const int MAX_M = 5500; // 使用常量定义上限
long long a[N];
long long tree[510][MAX_M + 1]; // 树状数组大小,考虑到索引从1开始
long long dp[10010][510];
int n, m;
// 获取低位权值
inline long long lowbit(long long x) {
return x & (-x);
}
// 更新树状数组
void update(int L, int R, long long d) {
for (int i = L; i <= m + 1; i += lowbit(i)) {
for (int j = R; j <= MAX_M; j += lowbit(j)) {
tree[i][j] = max(d, tree[i][j]);
}
}
}
// 查询树状数组
long long Sum(int L, int R) {
long long ans = 0;
for (int i = L; i; i -= lowbit(i)) {
for (int j = R; j; j -= lowbit(j)) {
ans = max(ans, tree[i][j]);
}
}
return ans;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
}