import java.io.*; import java.util.*; import java.math.*; class Main { public static void out (Object o) { System.out.println(o); } public static BigDecimal opt (String s) { long l = Long.valueOf(s); int i = s.charAt(s.length() - 1) - '0'; if (i % 2 == 0) { l = l >>> 1; } else { l = (l >>> 1) + 1; } return new BigDecimal(l % 10000000000L); } public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); BigDecimal ans = BigDecimal.ZERO; BigDecimal two = BigDecimal.valueOf(2); BigDecimal m = BigDecimal.valueOf(100000007); for (int i = 0; i < n; i++) { String[] line = br.readLine().split(" "); int len = line[1].length(); line[1] = len > 10 ? line[1].substring(len - 10 , len) : line[1]; BigDecimal c = opt(line[0]); BigDecimal d = new BigDecimal(line[1]); ans = ans.add(c.multiply(d)).remainder(m); } out(ans); } }