#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef vector<ll>vl1;
typedef vector<vl1> vl2;

int main()
{ ll i, j, k, kn, m, n, p, t, l, r, x, y, z, a, b, c, levo, desno;
  ll val, pos, tmp, suma, maxa, mina, naso, num, cena, vl, vr, zuma;
  string str1;
  char ch1;

  cin>>n>>cena>>t;
  cin>>str1;
  vl1 veka(n+2);//zbog kraja

  if(cena==n)
   { suma=0;
     for(i=1;i<=n;i++)
       { val=str1[i-1]-'0';
         veka[i]=val;
         suma+=val;
       }

     for(p=1;p<=t;p++)
      { cin>>l>>r;
        for(i=l;i<=r;i++)
          { val=veka[i];
            if(veka[i]==1) {veka[i]=0; suma--;}
            else {veka[i]=1; suma++;}
          }
        //cout<<endl;
        //for(i=1;i<=n;i++) cout<<veka[i]<<' '; cout<<endl;
        cout<<suma<<endl;
      }
   }//cena==n

  else if (cena==1)
   { suma=0; tmp=0;
     vl1 inta(n+2);//zbog kraja
     for(i=1;i<=n;i++)
       { val=str1[i-1]-'0';
         veka[i]=val;
         if(val!=tmp)
          { if(val==1) suma++; //broji intervale sa 1
            tmp=val;
          }
       }

     for(p=1;p<=t;p++)
      { cin>>l>>r;
        if(l==r)
         { val=veka[l];
           if(val==1) veka[l]=0; else veka[l]=1;
           if(l==1)
             { if(veka[2]==0)
                { if(veka[1]==1) suma++; else suma--; }
             }
           else if(l==n)
             { if(veka[n-1]==0)
                { if(veka[n]==1) suma++; else suma--; }
             }
           else// l u sredini
             { if(veka[l-1]==veka[l+1]) //X-X
                { if(veka[l-1]==0)
                     {if(veka[l]==1) suma++; else suma--;}//010
                  else//veka[l-1]==1
                     {if(veka[l]==1) suma--; else suma++;}//101
                }
             }//l u sredini
         }//l==r
        else//l<r
         { tmp=veka[l-1]; num=0;
             for(i=l;i<=r;i++)
             { if(veka[i]==1) veka[i]=0; else veka[i]=1;
             }
          levo=veka[l-1]; desno=veka[r+1];
          vl= veka[l]; vr=veka[r];

          if(levo==0)//0
            { if(vl==1)//01
                { if(vr!= desno)suma++;}// 0110, 0101
              else //00
                { if(vr==desno)suma--;}// 0011, 0000
            }
          else//levo==1)//1
            { if(vl==0)//10
                { if(vr!= desno)suma++;}// 1010, 1001
              else //11
                { if(vr==desno)suma--;}// 1111, 1100
            }
         }
        //cout<<endl;
        //for(i=1;i<=n;i++) cout<<veka[i]<<' '; cout<<endl;
        cout<<suma<<endl;
      } //p
   } //cena==1

  else//ne resava
   { for(i=1;i<=n;i++)
       { val=str1[i-1]-'0';
         veka[i]=val;
       }

     for(p=1;p<=t;p++)
      { cin>>l>>r;
        for(i=l;i<=r;i++)
          { if(veka[i]==1) veka[i]=0; else {veka[i]=1;}
          }
        tmp=0; suma=0; num=0; zuma=0;
        for(i=1;i<=n;i++)//n+1 zbog kraja
         { val=veka[i];
           if(val!=tmp)
             { if(val==0)//prosle 1
                 { if(num>cena) suma+=cena; else suma+=num;
                   num=1; tmp=val;
                 }
                else// prosle 0, ne racuna prvu grupu
                 { if(suma>0)
                     if(num>cena) zuma+=cena; else zuma+=num;
                   num=1; tmp=val;
                 }
             }
            else num++;
         }
        if(veka[n]==1)
          { if(num>cena) suma+=cena; else suma+=num;}

        /*cout<<endl;
        for(i=1;i<=n;i++) cout<<veka[i]<<' '; cout<<endl;
        cout<<"Suma "<<suma<<" Zuma "<<zuma<<" cena"<<cena<<endl;
        */

        if(zuma+cena<suma) suma=zuma+cena;
        cout<<suma<<endl;
      }
   }
  return 0;
}
/*
7 1 3
0111011
1 2
1 2
2 6

16 16 5
0111001111011001
16 16
1 1
3 3
5 5
7 7

7 2 3
0111011
1 2
1 2
2 6

16 3 5
0111001111011001
16 16
1 1
3 3
5 5
7 7

*/