import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.PrintWriter; import java.util.*; /** * Created by Tim Kilian on 13.12.16 * Inspired by Uwi Tenpen */ public class PickingNumbers { InputStream in; PrintWriter out; Scanner sc; private final static String customIN = ""; void solution() { int n = readInt(); int[] a = readInt(n); Arrays.sort(a); int max = 1; List b = new ArrayList<>(); int current = a[0]; for (int i = 1; i < a.length; i++) { if (current == a[i] || current+1 == a[i]) { max++; } else { b.add(max); max = 1; current = a[i]; } } b.add(max); out.print(Collections.max(b)); } public void solve() { int T = 1; // T = readInt(); while (T-- > 0) solution(); } private void run() { in = customIN.isEmpty() ? System.in : new ByteArrayInputStream(customIN.getBytes()); out = new PrintWriter(System.out); sc = new Scanner(in); long time = System.currentTimeMillis(); solve(); out.flush(); if (!customIN.isEmpty()) printOut(System.currentTimeMillis() - time + " ms"); exit(); } public static void main(String[] args) { new PickingNumbers().run(); } private int readInt() { return sc.nextInt(); } private int[] readInt(int n) { int[] arr = new int[n]; for (int i = 0; i < n; i++) arr[i] = readInt(); return arr; } private long readLong() { return sc.nextLong(); } private long[] readLong(int n) { long[] arr = new long[n]; for (int i = 0; i < n; i++) arr[i] = readLong(); return arr; } private String readString() { return sc.next(); } private double readDouble() { return Double.parseDouble(readString()); } private static void printOut(Object... o) { System.out.println(Arrays.deepToString(o)); } private static void printArray(T[] arr) { for (T i : arr) System.out.print(i + " "); System.out.println(); } private void exit() { out.close(); System.exit(0); } }