#include <bits/stdc++.h>
using namespace std;
int n, m, cnt = 0;
int a[50001];
bool t[1000001];
inline int read()
{
int x = 0, f = 1;
char ch = getchar();
while(ch < '0' || ch > '9')
{
if(ch == '-') f = -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9')
{
x = (x << 1) + (x << 3) + (ch ^ 48);
ch = getchar();
}
return x * f;
}
int main()
{
n = read(), m = read();
for(int i = 0; i < n; i++)
a[i] = read();
while(m--)
{
char c;
cin >> c;
int x = read(), y = read();
if(c == 'M') a[x] = y;
else
{
cnt = 0;
memset(t, 0, sizeof(t));
for(int i = x; i < y; i++)
if(!t[a[i]])
{
cnt++;
t[a[i]] = 1;
}
printf("%d\n", cnt);
}
}
return 0;
}
哪里错了???