qaq
#include <algorithm>
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
int n, a, b;
ll ans, tmp;
struct Node{
ll hp, dm;
}nd[200005];
bool cmp(Node x, Node y){
return x.hp-x.dm>y.hp-y.dm;
}
int main(){
cin>>n>>a>>b;
for(int i=1; i<=n; i++)
scanf("%I64d %I64d", &nd[i].hp, &nd[i].dm);
sort(nd+1, nd+1+n, cmp);
for(int i=1; i<=n; i++)
if(i<=b) ans += max(nd[i].hp, nd[i].dm);
else ans += nd[i].dm;
if(b==0){
printf("%I64d
", ans);
return 0;
}
tmp = ans;
for(int i=1; i<=n; i++){
ll qaq=tmp;
if(i<=b){
qaq -= max(nd[i].hp, nd[i].dm);
qaq += max(nd[i].dm, max(nd[i].hp*(1<<a), nd[i].dm));
ans = max(ans, qaq);
}
else{
qaq -= nd[i].dm;
qaq += max(nd[i].dm, max(nd[i].hp*(1<<a), nd[i].dm));
qaq -= max(nd[b].hp, nd[b].dm);
qaq += nd[b].dm;
ans = max(ans, qaq);
}
}
cout<<ans<<endl;
return 0;
}