import java.io.*; import java.util.*; import static java.lang.System.out; public class Main { static MyReader in = new MyReader(); public static void main(String[] args) { int N = in.i(); int[] A = in.ii(N); int[][] dp = new int[N + 1][10]; for (int i = 0; i < N; i++) { for (int j = 0; j < 10; j++) { dp[i + 1][j] = dp[i][j]; } for (int j = 0; j < 10; j++) { int k = (j + A[i]) % 10; if (j == 0 || dp[i][j] > 0) { dp[i + 1][k] = Math.max(dp[i + 1][k], dp[i][j] + 1); } } } out.println(dp[N][0]); } } class MyReader extends BufferedReader { char[] cbuf = new char[1024]; int head = 0; int tail = 0; MyReader() { super(new InputStreamReader(System.in)); } char next() { if (head == tail) { try { tail = super.read(cbuf, 0, cbuf.length); } catch (IOException e) { e.printStackTrace(); } head = 0; } return cbuf[head++]; } void back() { head--; } boolean minus() { boolean minus; while (true) { char c = next(); if (!isDelimiter(c)) { if (!(minus = c == '-')) back(); return minus; } } } void skip() { while (isDelimiter(next())); back(); } char[] s(int N) { char[] cbuf = new char[N]; read(cbuf, 0, N); return cbuf; } public int read(char[] cbuf, int off, int len) { skip(); int i; for (i = 0; i < cbuf.length; i++) { char c = next(); if (isDelimiter(c)) { break; } cbuf[i] = c; } return i; } boolean isDelimiter(char c) { return c == ' ' || c == '\n' || c == '\r'; } int i() { boolean minus = minus(); int n = 0; while (true) { int k = next() - '0'; if (k < 0 || 9 < k) break; n = 10 * n + k; } return minus ? -n : n; } int[] ii(final int N) { int[] a = new int[N]; for (int j = 0; j < a.length; j++) a[j] = i(); return a; } long l() { boolean minus = minus(); long n = 0; while (true) { int k = next() - '0'; if (k < 0 || 9 < k) break; n = 10 * n + k; } return minus ? -n : n; } }