using System; public class Test { public static List getMax(List operations) { Stack arr = new Stack(); List ans = new List(); SortedDictionary occurences = new SortedDictionary(); foreach (var query in operations) { if (query.Length > 1) { string x = query.Substring(2); int value = int.Parse(x); arr.Push(value); if (occurences.ContainsKey(value)) { occurences[value]++; } else { occurences.Add(value, 1); } } else if (query == "2") { occurences[arr.Peek()]--; if (occurences[arr.Peek()] == 0) { occurences.Remove(arr.Peek()); } arr.Pop(); } else { ans.Add(occurences.Last().Key); } } return ans; } public static void Main() { // your code goes here } }