import os,sys,random,threading from random import randint,choice,shuffle from copy import deepcopy from io import BytesIO,IOBase from types import GeneratorType from functools import lru_cache,reduce from bisect import bisect_left,bisect_right from collections import Counter,defaultdict,deque from itertools import accumulate,combinations,permutations from heapq import heapify,heappop,heappush from typing import Generic,Iterable,Iterator,TypeVar,Union,List from string import ascii_lowercase,ascii_uppercase,digits from math import ceil,floor,sqrt,pi,factorial,gcd,log,log10,log2,inf from decimal import Decimal,getcontext from sys import stdin, stdout, setrecursionlimit input = lambda: sys.stdin.readline().rstrip("\r\n") MI = lambda :map(int,input().split()) li = lambda :list(MI()) ii = lambda :int(input()) mod = int(1e9 + 7) inf = 1<<60 py = lambda :print("YES") pn = lambda :print("NO") n,k=li() a=li() q=ii() st=[0]*n iv=[] for t in range(q): x,v=li() x-=1 iv.append((st[x],t,a[x])) # 旧的a[x]在[st[x],t)这段时间内存在 st[x]=t a[x]=v for i in range(n): iv.append((st[i],q,a[i])) #到结尾都还存在的元素收集起来 seg=[[] for _ in range(4*q)] def upd(i,l,r,ql,qr,v): #值v出现的区间是[ql,qr)的值 #桶i对应的区间[l,r) if ql<=l and r<=qr: #这个值出现范围完全覆盖桶 seg[i].append(v) return m=(l+r)//2 if qlm: upd(i*2+1,m,r,ql,qr,v) for l,r,v in iv: upd(1,0,q,l,r,v) full=(1<<(k+1))-1 topbit=1<