typedef long long ll;
const int N = 5e5 + 5;
ll n, m;

ll tree[N], arr[N];
ll lowbit_(int x){
	return x & -x;
}

void update(int p, int x) {
	for(; p <= n; p += lowbit_(p))  tree[p] += x;
}

int sum(int p){//find the prefix.
	int ans = 0;
	for(;x ; x -= lowbit_(x)) ans += tree[x];
	return ans;
} 

void make_trArray(){//link plus.
	for(int i = 1;i <= n;i++) {//copy the array
		tree[i] = arr[i];
	}
	
	for(int i = 1;i <= n;i++) {
		int j = i + lowbit_(i);
		if(j <= n) tree[j] += tree[i];
	}
}