#include <bits/stdc++.h>
std::vector<std::vector<int>> vc;
int sum{1}, k{};
std::vector<int> sizes;
long long dp[1<<18];
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+IHZjOwppbnQgc3VtezF9LCBre307CnN0ZDo6dmVjdG9yPGludD4gc2l6ZXM7CmxvbmcgbG9uZyBkcFsxPDwxOF07CmludCBjb21wcmVzcyhzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiAmYSl7CiAgICBpbnQgYW5ze307CiAgICBmb3IoaW50IGo9MDsgajxhLnNpemUoKTsgKytqKXsKICAgICAgICBpZihqKSBhbnMgKj0gc2l6ZXNbal0rMTsKICAgICAgICBhbnMgKz0gYVtqXS5zZWNvbmQ7CiAgICB9CiAgICByZXR1cm4gYW5zOwp9CmxvbmcgbG9uZyBzb2x2ZShzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiAmYSwgaW50IGkpewogICAgaWYoaT09aykgcmV0dXJuIHN1bTsKICAgIGludCBiID0gY29tcHJlc3MoYSk7CiAgICBpZih+ZHBbYl0pIHJldHVybiBkcFtiXTsKICAgIGxvbmcgbG9uZyBhbnN7fTsKICAgIGZvcihpbnQgaj0wOyBqPGEuc2l6ZSgpOyArK2opewogICAgICAgIGlmKGFbal0uc2Vjb25kID09IHNpemVzW2pdKSBjb250aW51ZTsKICAgICAgICArK2Fbal0uc2Vjb25kOwogICAgICAgIGFucyA9IHN0ZDo6bWF4KGFucywgc29sdmUoYSwgaSsxKSphW2pdLmZpcnN0ICsgdmNbal1bYVtqXS5zZWNvbmQtMV0pOwogICAgICAgIC0tYVtqXS5zZWNvbmQ7CiAgICB9CiAgICByZXR1cm4gZHBbYl0gPSBhbnM7Cn0KaW50IG1haW4oKSB7CiAgICBzdGQ6Omlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBzdGQ6OmNpbi50aWUobnVsbHB0cik7CiAgICBtZW1zZXQoZHAsIC0xLCBzaXplb2YgZHApOwogICAgaW50IG47CiAgICBzdGQ6OmNpbiA+PiBuOwogICAgc3RkOjptYXA8aW50LCBzdGQ6OnZlY3RvcjxpbnQ+PiBtcDsKICAgIGZvcihpbnQgaT0wOyBpPG47ICsraSkgewogICAgICAgIGludCBtLCBjOwogICAgICAgIHN0ZDo6Y2luID4+IG0gPj4gYzsKICAgICAgICBpZihtID09IDEpIHN1bSArPSBjOwogICAgICAgIGVsc2UgewogICAgICAgICAgICBrKys7CiAgICAgICAgICAgIG1wW21dLnB1c2hfYmFjayhjKTsKICAgICAgICB9CiAgICB9CiAgICBzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiB0ZW1wOwogICAgZm9yKGF1dG8gJlttLCB2XSA6IG1wKSB7CiAgICAgICAgc3RkOjpzb3J0KHYuYmVnaW4oKSwgdi5lbmQoKSk7CiAgICAgICAgdmMucHVzaF9iYWNrKHYpOwogICAgICAgIHRlbXAuZW1wbGFjZV9iYWNrKG0sIDApOwogICAgICAgIHNpemVzLnB1c2hfYmFjaygoaW50KXYuc2l6ZSgpKTsKICAgIH0KICAgIHN0ZDo6Y291dCA8PCBzb2x2ZSh0ZW1wLCAwKSA8PCAnXG4nOwp9