只A了#1
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int M=5e5+5;
int n,m,ans2=1e9;
int a[M],a1[M];
multiset<int> p,s;
signed main()
{
// freopen("P1110_2.in","r",stdin);
// freopen("P1110.out","w",stdout);
scanf("%lld%lld",&n,&m);
a[0]=-2e9;a[n+1]=-2e9;
p.insert(-2e9);p.insert(2e9);
for(int i=1,x;i<=n;++i)
{
scanf("%lld",&x);a1[i]=a[i]=x;p.insert(x);
s.insert(abs(x-a[i-1]));
ans2=min(ans2,min(abs(x-*p.upper_bound(x)),abs(x-*--p.lower_bound(x))));
}
while(m--)
{
string op;
cin>>op;
if(op[0]=='I')
{
int i,k;
scanf("%lld%lld",&i,&k);
s.erase(s.find(abs(a1[i]-a[i+1])));s.insert(abs(a1[i]-k));s.insert(abs(k-a[i+1]));
a1[i]=k;p.insert(k);
ans2=min(ans2,min(abs(k-*p.upper_bound(k)),abs(k-*--p.lower_bound(k))));
}
else if(op[4]=='G') printf("%lld\n",*s.begin());
else printf("%lld\n",ans2);
}
return 0;
}