#include <bits/stdc++.h>
using namespace std;
template <typename T>
bool minimize(T& target, T candidate) {
return target > candidate ? (target = candidate, true) : false;
}
template <typename T>
bool maximize(T& target, T candidate) {
return target < candidate ? (target = candidate, true) : false;
}
using ll = long long;
struct Art {
ll size, value;
} arts[505050];
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin >> N;
for (int i = 0; i < N; i++) {
auto& [size, value] = arts[i];
cin >> size >> value;
}
ll answer = 0;
for (int bit = 1; bit < (1 << N); bit++) {
ll sum = 0, minSize = LLONG_MAX, maxSize = 0;
for (int i = 0; i < N; i++) {
if (~bit & (1 << i))
continue;
sum += arts[i].value;
minimize(minSize, arts[i].size);
maximize(maxSize, arts[i].size);
}
maximize(answer, sum - (maxSize - minSize));
}
cout << answer;
return 0;
}