using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = NN; var map = NArr(n); var bitmax = 1 << n; var INF = 10000; var dp = new int[bitmax, n]; for (var b = 0; b < bitmax; ++b) for (var i = 0; i < n; ++i) dp[b, i] = INF; for (var i = 0; i < n; ++i) dp[1 << i, i] = 0; for (var b = 1; b < bitmax; ++b) { for (var i = 0; i < n; ++i) { if ((b & (1 << i)) == 0) continue; for (var j = 0; j < n; ++j) { var next = b | (1 << j); if (b == next) continue; dp[next, j] = Math.Min(dp[next, j], Math.Max(dp[b, i], map[i][1] - map[i][0] + map[j][0])); } } } var ans = INF; for (var i = 0; i < n; ++i) ans = Math.Min(ans, dp[bitmax - 1, i]); WriteLine(ans); } }