//============================================================================
// Author : Maulik Soneji
// Motto : Never Give up
// Institute : DA-IICT,Gandhinagar
// Handle : maulik12
//============================================================================
#include<bits/stdc++.h>
#define SIZE 100001
using namespace std;
typedef long long ll;
void SI(ll &x)
{
register int c = getchar_unlocked();
x = 0;
for(;(c<48 || c>57);c = getchar_unlocked());
for(;c>47 && c<58;c = getchar_unlocked())
x = (x<<1) + (x<<3) + c - 48;
}
ll st[4*SIZE+1];
ll lazy[4*SIZE+1];
ll arr[SIZE];
void update(ll ss,ll se,ll index,ll qs,ll qe)
{
if(lazy[index]!=0)
{
if(ss!=se)
{
lazy[2*index+1]+=1;
lazy[2*index+2]+=1;
}
st[index]+=(se-ss+1)*lazy[index];
lazy[index]=0;
}
if(qs>se || qe<ss)
return;
// cout<<ss<<" "<<se<<" "<<qs<<" "<<qe<<endl;
if(ss>=qs && se<=qe)
{
// cout<<ss<<"SSD"<<endl;
st[index]+=(se-ss+1);
if(ss!=se)
{
lazy[2*index+1]+=1;
lazy[2*index+2]+=1;
}
return;
}
ll mid=(ss+se)/2;
update(ss,mid,2*index+1,qs,qe);
update(mid+1,se,2*index+2,qs,qe);
st[index]=st[2*index+1]+st[2*index+2];
}
ll query(ll ss,ll se,ll qs,ll qe,ll index)
{
if(lazy[index]!=0)
{
if(ss!=se)
{
lazy[2*index+1]+=1;
lazy[2*index+2]+=1;
}
st[index]+=(se-ss+1)*lazy[index];
lazy[index]=0;
}
if(ss>qe || se<qs)
return 0;
if(ss>=qs && se<=qe)
{
return st[index];
}
ll mid=(ss+se)/2;
ll lft=query(ss,mid,qs,qe,2*index+1);
ll rgt=query(mid+1,se,qs,qe,2*index+2);
return lft+rgt;
}
int main()
{
ll t;
SI(t);
ll n,m;
for(ll i=1;i<=t;i++)
{
printf("Scenario #%lld:\n",i);
SI(n);
SI(m);
for(int i=0;i<=(4*n);i++)
{
st[i]=0;
lazy[i]=0;
}
char str[50];
ll a,b;
ll ans=0;
while(m--)
{
scanf("%s",str);
SI(a);
SI(b);
a--;
b--;
if(str[0]=='a')
{
ans=query(0,n-1,a,b,0);
printf("%lld\n",ans);
}
else
{
printf("OK\n");
update(0,n-1,0,a,b);
}
}
}
}
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIEF1dGhvciAgICAgIDogTWF1bGlrIFNvbmVqaQovLyBNb3R0byAgICAgICA6IE5ldmVyIEdpdmUgdXAKLy8gSW5zdGl0dXRlICAgOiBEQS1JSUNULEdhbmRoaW5hZ2FyCi8vIEhhbmRsZQkgICA6IG1hdWxpazEyCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBTSVpFIDEwMDAwMQp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCnZvaWQgU0kobGwgJngpCnsKCXJlZ2lzdGVyIGludCBjID0gZ2V0Y2hhcl91bmxvY2tlZCgpOwoJeCA9IDA7Cglmb3IoOyhjPDQ4IHx8IGM+NTcpO2MgPSBnZXRjaGFyX3VubG9ja2VkKCkpOwoKCWZvcig7Yz40NyAmJiBjPDU4O2MgPSBnZXRjaGFyX3VubG9ja2VkKCkpCgkJeCA9ICh4PDwxKSArICh4PDwzKSArIGMgLSA0ODsKfQoKbGwgc3RbNCpTSVpFKzFdOwpsbCBsYXp5WzQqU0laRSsxXTsKbGwgYXJyW1NJWkVdOwoKCnZvaWQgdXBkYXRlKGxsIHNzLGxsIHNlLGxsIGluZGV4LGxsIHFzLGxsIHFlKQp7CiAgICBpZihsYXp5W2luZGV4XSE9MCkKICAgIHsKICAgICAgICBpZihzcyE9c2UpCiAgICAgICAgewogICAgICAgICAgICBsYXp5WzIqaW5kZXgrMV0rPTE7CiAgICAgICAgICAgIGxhenlbMippbmRleCsyXSs9MTsKICAgICAgICB9CiAgICAgICAgc3RbaW5kZXhdKz0oc2Utc3MrMSkqbGF6eVtpbmRleF07CiAgICAgICAgbGF6eVtpbmRleF09MDsKICAgIH0KCiAgICBpZihxcz5zZSB8fCBxZTxzcykKICAgICAgICByZXR1cm47CgkvLyBjb3V0PDxzczw8IiAiPDxzZTw8IiAiPDxxczw8IiAiPDxxZTw8ZW5kbDsKICAgIGlmKHNzPj1xcyAmJiBzZTw9cWUpCiAgICB7CiAgICAJLy8gY291dDw8c3M8PCJTU0QiPDxlbmRsOwogICAgICAgIHN0W2luZGV4XSs9KHNlLXNzKzEpOwogICAgICAgIGlmKHNzIT1zZSkKICAgICAgICB7CiAgICAgICAgICAgIGxhenlbMippbmRleCsxXSs9MTsKICAgICAgICAgICAgbGF6eVsyKmluZGV4KzJdKz0xOwogICAgICAgIH0KICAgICAgICByZXR1cm47CiAgICB9CiAgICBsbCBtaWQ9KHNzK3NlKS8yOwogICAgdXBkYXRlKHNzLG1pZCwyKmluZGV4KzEscXMscWUpOwogICAgdXBkYXRlKG1pZCsxLHNlLDIqaW5kZXgrMixxcyxxZSk7CiAgICBzdFtpbmRleF09c3RbMippbmRleCsxXStzdFsyKmluZGV4KzJdOwp9CmxsIHF1ZXJ5KGxsIHNzLGxsIHNlLGxsIHFzLGxsIHFlLGxsIGluZGV4KQp7CiAgICAgICAgaWYobGF6eVtpbmRleF0hPTApCiAgICAgICAgewogICAgICAgICAgICBpZihzcyE9c2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxhenlbMippbmRleCsxXSs9MTsKICAgICAgICAgICAgICAgIGxhenlbMippbmRleCsyXSs9MTsKICAgICAgICAgICAgfQogICAgICAgICAgICBzdFtpbmRleF0rPShzZS1zcysxKSpsYXp5W2luZGV4XTsKICAgICAgICAgICAgbGF6eVtpbmRleF09MDsKICAgICAgICB9CiAgICAgICAgaWYoc3M+cWUgfHwgc2U8cXMpCiAgICAgICAgICAgIHJldHVybiAwOwoKICAgICAgICBpZihzcz49cXMgJiYgc2U8PXFlKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIHN0W2luZGV4XTsKICAgICAgICB9CiAgICAgICAgbGwgbWlkPShzcytzZSkvMjsKCiAgICAgICAgbGwgbGZ0PXF1ZXJ5KHNzLG1pZCxxcyxxZSwyKmluZGV4KzEpOwogICAgICAgIGxsIHJndD1xdWVyeShtaWQrMSxzZSxxcyxxZSwyKmluZGV4KzIpOwoKICAgICAgICByZXR1cm4gbGZ0K3JndDsKfQppbnQgbWFpbigpCnsKICAgbGwgdDsKICAgU0kodCk7CiAgIGxsIG4sbTsKICAgZm9yKGxsIGk9MTtpPD10O2krKykKICAgewogICAJICAgcHJpbnRmKCJTY2VuYXJpbyAjJWxsZDpcbiIsaSk7CiAgICAgICBTSShuKTsKICAgICAgIFNJKG0pOwogICAgICAgZm9yKGludCBpPTA7aTw9KDQqbik7aSsrKQogICAgICAgewogICAgICAgCQlzdFtpXT0wOwogICAgICAgCQlsYXp5W2ldPTA7CiAgICAgICB9CiAgICAgICBjaGFyIHN0cls1MF07CiAgICAgICBsbCBhLGI7CiAgICAgICBsbCBhbnM9MDsKICAgICAgIHdoaWxlKG0tLSkKICAgICAgIHsKICAgICAgICAgICBzY2FuZigiJXMiLHN0cik7CiAgICAgICAgICAgU0koYSk7CiAgICAgICAgICAgU0koYik7CiAgICAgICAgICAgYS0tOwogICAgICAgICAgIGItLTsKICAgICAgICAgICBpZihzdHJbMF09PSdhJykKICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGFucz1xdWVyeSgwLG4tMSxhLGIsMCk7CiAgICAgICAgICAgICAgIHByaW50ZigiJWxsZFxuIixhbnMpOwogICAgICAgICAgIH0KICAgICAgICAgICBlbHNlCiAgICAgICAgICAgewogICAgICAgICAgICAgICBwcmludGYoIk9LXG4iKTsKICAgICAgICAgICAgICAgdXBkYXRlKDAsbi0xLDAsYSxiKTsKICAgICAgICAgICB9CiAgICAgICB9CiAgIH0KfQo=