#include<bits/stdc++.h>
const int N = 15;
int b[N], s[N];
long long ans = 0x3f3f3f;
bool vis[N];
int n;
int cntt = 1;
inline void dfs(int dep, long long sum, long long sum1)
{
if(dep > n)
{
if(sum == 0 && sum1 == 0 || (sum == 1 && sum1 == 0))
{
return;
}
ans = std::min(abs(sum - sum1), ans);
if(ans == 0)
{
std::cout << 0;
exit(0);
}
return;
}
else
{
for(int i = 1; i <= n; i ++)
{
if(vis[i] == 0)
{
vis[i] = 1;
if(sum != 0)
{
dfs(dep + 1, s[i] * sum, sum1 + b[i]);
}
else
{
dfs(dep + 1, 1 * s[i], sum1 + b[i]);
}
vis[i] = 0;
dfs(dep + 1, sum, sum1);
}
}
}
}
int main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(0);
std::cin >> n;
for(int i = 1; i <= n; i ++)
std::cin >> s[i] >> b[i];
ans = 0x3f3f3f;
dfs(1, 0, 0);
std::cout << ans;
}