import java.util.*;
import java.lang.*;
import java.io.*;
class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int Q = Integer.parseInt(st.nextToken());
int leaf_count = 1;
while(n > leaf_count) {
leaf_count <<= 1;
}
int arr_len = 2*leaf_count - 1;
int[] arr = new int[arr_len];
st = new StringTokenizer(br.readLine());
for (int i=arr_len/2; i<arr_len; i++) {
if (st.hasMoreTokens()) {
arr[i] = Integer.parseInt(st.nextToken());
} else {
arr[i] = 0;
}
}
if (arr_len>=2) {
for (int i=arr_len/2-1; i>=0; i--) {
arr[i] = Math.max(arr[i*2+1], arr[i*2+2]);
}
}
for (int q = 0; q<Q; q++) {
st = new StringTokenizer(br.readLine());
int p = Integer.parseInt(st.nextToken());
int x = Integer.parseInt(st.nextToken());
int idx = arr_len/2+p; // 음, +1안해도 되나? 계산상 해야할 것 같았는데
arr[idx] = x;
while (idx!= 0) {
idx = (idx-1)/2;
arr[idx] = Math.max(arr[idx*2+1], arr[idx*2+2]);
}
StringBuilder sb = new StringBuilder();
for (int i=0; i<arr_len; i++) {
sb.append(arr[i]);
sb.append(i==arr_len-1? "" : " ");
}
System.out.println(sb);
}
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: