using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static void Main(String[] args) { int n = Convert.ToInt32(Console.ReadLine()); string[] a_temp = Console.ReadLine().Split(' '); int[] a = Array.ConvertAll(a_temp,Int32.Parse); // number of appearences var appear = new Dictionary(); foreach (var number in a) { if (appear.ContainsKey(number)) { appear[number]++; } else { appear.Add(number, 1); } } // sort keys var keys = appear.Keys.ToList(); keys.Sort(); // greedy var bestNumber = 0; for(int i = 0; i < 100; i++) { var firstOfThree = appear.ContainsKey(i) ? appear[i] :0; var secondOfThree = appear.ContainsKey(i+1) ? appear[i+1] :0; var sumOfThree = firstOfThree + secondOfThree; if (sumOfThree > bestNumber) { bestNumber = sumOfThree; } } // ouput Console.WriteLine(bestNumber); } }