using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; class hawawa { static Printer sw = new Printer(Console.OpenStandardOutput()) { AutoFlush = false }; static void Main() { Console.SetOut(sw); solve(); Console.Out.Flush(); } static void solve() { Scanner scanner = new Scanner(); int n = scanner.nextInt(); Dictionary scores = new Dictionary(); while(n-- != 0) { int x = scanner.nextInt(), No = scanner.nextInt(), s = scanner.nextInt(); for(int i = 0; i < No; i++) { string tag = scanner.next(); if (!scores.ContainsKey(tag)) scores[tag] = s; else scores[tag] += s; } } List> ans = new List>(scores); ans.Sort(comp); for(int j = 0; j < Math.Min(10, ans.Count()); j++) { var i = ans[j]; Console.WriteLine("{0} {1}", i.Key, i.Value); } } static int comp(KeyValuePair x, KeyValuePair y) { if (x.Value < y.Value || (x.Value == y.Value && string.Compare(x.Key, y.Key) > 0)) return 1; if (x.Value > y.Value || (x.Value == y.Value && string.Compare(x.Key, y.Key) < 0)) return -1; return 0; } } class Scanner { string[] s; int i; char[] cs = new char[] { ' ' }; public Scanner() { s = new string[0]; i = 0; } public string next() { if (i < s.Length) return s[i++]; string st = Console.ReadLine(); while (st == "") st = Console.ReadLine(); s = st.Split(cs, StringSplitOptions.RemoveEmptyEntries); i = 0; return next(); } public int nextInt() { return int.Parse(next()); } public long nextLong() { return long.Parse(next()); } public double nextDouble() { return double.Parse(next()); } } class Printer : StreamWriter { public override IFormatProvider FormatProvider { get { return CultureInfo.InvariantCulture; } } public Printer(Stream stream) : base(stream, new UTF8Encoding(false, true)) { } public Printer(Stream stream, Encoding encoding) : base(stream, encoding) { } }