import java.util.*; import java.math.*; import java.io.*; import java.util.Collections; public class Solution { static class Solver { Solver() { } public void solve(FastScanner scanner, PrintWriter out) throws IOException{ int n = scanner.nextInt(); List list = new ArrayList<>(); for(int i = 0; i < n; i++) { int num = scanner.nextInt(); list.add(num); } Collections.sort(list, Collections.reverseOrder()); int maxNum = 0; for(int i = 0; i < list.size(); i++) { int total = 0; for(int j = i; j < list.size(); j++) { if(Math.abs(list.get(i) - list.get(j)) <= 1) { ++total; } else { break; } } if(total > maxNum) { maxNum = total; } } out.println(maxNum); } } public static void main(String[] args) throws IOException{ FastScanner scanner = new FastScanner(System.in); PrintWriter out = new PrintWriter(System.out); (new Solver()).solve(scanner, out); out.flush(); } static class FastScanner { BufferedReader br; StringTokenizer st; FastScanner(InputStream stream) { try { br = new BufferedReader(new InputStreamReader(stream)); } catch(Exception e) { e.printStackTrace(); } } boolean hasNextToken() { if(st == null) { try { st = new StringTokenizer(br.readLine()); } catch(IOException e) { } } return st.hasMoreTokens(); } String next() { while(st == null || !st.hasMoreTokens()) { try { st = new StringTokenizer(br.readLine()); } catch(IOException e) { e.printStackTrace(); } } return st.nextToken(); } String nextLine() throws IOException{ return br.readLine(); } byte nextByte() { return Byte.parseByte(next()); } int nextInt() { return Integer.parseInt(next()); } long nextLong() { return Long.parseLong(next()); } } }