static void Main(string[] args) { int N = int.Parse(Console.ReadLine().Split(' ')[1]); Lecture[] lectures = new Lecture[N]; for (int i = 0; i < N; i++) { string[] entry = Console.ReadLine().Split(new string[] { ": ", " - " }, StringSplitOptions.None).ToArray(); string name = entry[0]; int s = int.Parse(entry[1]); int f = int.Parse(entry[2]); lectures[i] = new Lecture(name, s, f); } lectures = lectures.OrderBy(x => x.F).ToArray(); List <Lecture> result = new List <Lecture>(); for (int i = 0; i < lectures.Length; i++) { if (lectures[i] == null) { continue; } Lecture current = lectures[i]; result.Add(current); for (int i1 = 0; i1 < lectures.Length; i1++) { if (lectures[i1] != null && lectures[i1].S < current.F) { lectures[i1] = null; } } } Console.WriteLine("Lectures ({0}):", result.Count); foreach (Lecture lect in result) { Console.WriteLine($"{lect.S}-{lect.F} -> {lect.Name}"); } }