#include <bits/stdc++.h>
std::vector<std::vector<int>> vc;
int sum{1}, k{};
std::vector<int> sizes;
long long dp[1<<22];
int compress(std::vector<std::pair<int, int>> &a){
int ans{};
for(int j=0; j<a.size(); ++j){
if(j) ans *= sizes[j]+1;
ans += a[j].second;
}
return ans;
}
long long solve(std::vector<std::pair<int, int>> &a, int i){
if(i==k) return sum;
int b = compress(a);
if(~dp[b]) return dp[b];
long long ans{};
for(int j=0; j<a.size(); ++j){
if(a[j].second == sizes[j]) continue;
++a[j].second;
ans = std::max(ans, solve(a, i+1)*a[j].first + vc[j][a[j].second-1]);
--a[j].second;
}
return dp[b] = ans;
}
int main() {
std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr);
memset(dp, -1, sizeof dp);
int n;
std::cin >> n;
std::map<int, std::vector<int>> mp;
for(int i=0; i<n; ++i) {
int m, c;
std::cin >> m >> c;
if(m == 1) sum += c;
else {
k++;
mp[m].push_back(c);
}
}
std::vector<std::pair<int, int>> temp;
for(auto &[m, v] : mp) {
std::sort(v.begin(), v.end());
vc.push_back(v);
temp.emplace_back(m, 0);
sizes.push_back((int)v.size());
}
std::cout << solve(temp, 0) << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnN0ZDo6dmVjdG9yPHN0ZDo6dmVjdG9yPGludD4+IHZjOwppbnQgc3VtezF9LCBre307CnN0ZDo6dmVjdG9yPGludD4gc2l6ZXM7CmxvbmcgbG9uZyBkcFsxPDwyMl07CmludCBjb21wcmVzcyhzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiAmYSl7CiAgICBpbnQgYW5ze307CiAgICBmb3IoaW50IGo9MDsgajxhLnNpemUoKTsgKytqKXsKICAgICAgICBpZihqKSBhbnMgKj0gc2l6ZXNbal0rMTsKICAgICAgICBhbnMgKz0gYVtqXS5zZWNvbmQ7CiAgICB9CiAgICByZXR1cm4gYW5zOwp9CmxvbmcgbG9uZyBzb2x2ZShzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiAmYSwgaW50IGkpewogICAgaWYoaT09aykgcmV0dXJuIHN1bTsKICAgIGludCBiID0gY29tcHJlc3MoYSk7CiAgICBpZih+ZHBbYl0pIHJldHVybiBkcFtiXTsKICAgIGxvbmcgbG9uZyBhbnN7fTsKICAgIGZvcihpbnQgaj0wOyBqPGEuc2l6ZSgpOyArK2opewogICAgICAgIGlmKGFbal0uc2Vjb25kID09IHNpemVzW2pdKSBjb250aW51ZTsKICAgICAgICArK2Fbal0uc2Vjb25kOwogICAgICAgIGFucyA9IHN0ZDo6bWF4KGFucywgc29sdmUoYSwgaSsxKSphW2pdLmZpcnN0ICsgdmNbal1bYVtqXS5zZWNvbmQtMV0pOwogICAgICAgIC0tYVtqXS5zZWNvbmQ7CiAgICB9CiAgICByZXR1cm4gZHBbYl0gPSBhbnM7Cn0KaW50IG1haW4oKSB7CiAgICBzdGQ6Omlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBzdGQ6OmNpbi50aWUobnVsbHB0cik7CiAgICBtZW1zZXQoZHAsIC0xLCBzaXplb2YgZHApOwogICAgaW50IG47CiAgICBzdGQ6OmNpbiA+PiBuOwogICAgc3RkOjptYXA8aW50LCBzdGQ6OnZlY3RvcjxpbnQ+PiBtcDsKICAgIGZvcihpbnQgaT0wOyBpPG47ICsraSkgewogICAgICAgIGludCBtLCBjOwogICAgICAgIHN0ZDo6Y2luID4+IG0gPj4gYzsKICAgICAgICBpZihtID09IDEpIHN1bSArPSBjOwogICAgICAgIGVsc2UgewogICAgICAgICAgICBrKys7CiAgICAgICAgICAgIG1wW21dLnB1c2hfYmFjayhjKTsKICAgICAgICB9CiAgICB9CiAgICBzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiB0ZW1wOwogICAgZm9yKGF1dG8gJlttLCB2XSA6IG1wKSB7CiAgICAgICAgc3RkOjpzb3J0KHYuYmVnaW4oKSwgdi5lbmQoKSk7CiAgICAgICAgdmMucHVzaF9iYWNrKHYpOwogICAgICAgIHRlbXAuZW1wbGFjZV9iYWNrKG0sIDApOwogICAgICAgIHNpemVzLnB1c2hfYmFjaygoaW50KXYuc2l6ZSgpKTsKICAgIH0KICAgIHN0ZDo6Y291dCA8PCBzb2x2ZSh0ZW1wLCAwKSA8PCAnXG4nOwp9