#include <bits/stdc++.h>
using namespace std;
int n, a[3], visited[61][61][61];
int ap[6][3] = { {1, 3, 9}, {1, 9, 3}, {3, 1, 9}, {3, 9, 1}, {9, 1, 3}, {9, 3, 1} };
struct A {
int a, b, c;
};
queue<A> q;
int solve(int a, int b, int c){
visited[a][b][c] = 1;
q.push({a, b, c});
while(q.size()){
int a = q.front().a;
int b = q.front().b;
int c = q.front().c;
q.pop();
for(int i = 0; i < 6; i++){
int na = max(0, a - ap[i][0]);
int nb = max(0, b - ap[i][1]);
int nc = max(0, c - ap[i][2]);
if(visited[na][nb][nc]) continue;
visited[na][nb][nc] = visited[a][b][c] + 1;
q.push({na, nb, nc});
}
if(visited[0][0][0]) break;
}
return visited[0][0][0];
}
int main(){
cin >> n;
for(int i = 0; i < n; i++){
cin >> a[i];
}
cout << solve(a[0], a[1], a[2]) << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuLCBhWzNdLCB2aXNpdGVkWzYxXVs2MV1bNjFdOwppbnQgYXBbNl1bM10gPSB7IHsxLCAzLCA5fSwgezEsIDksIDN9LCB7MywgMSwgOX0sIHszLCA5LCAxfSwgezksIDEsIDN9LCB7OSwgMywgMX0gfTsKCnN0cnVjdCBBIHsKICAgIGludCBhLCBiLCBjOwp9OwpxdWV1ZTxBPiBxOwoKaW50IHNvbHZlKGludCBhLCBpbnQgYiwgaW50IGMpewogICAgdmlzaXRlZFthXVtiXVtjXSA9IDE7CiAgICBxLnB1c2goe2EsIGIsIGN9KTsKICAgIAogICAgd2hpbGUocS5zaXplKCkpewogICAgICAgIGludCBhID0gcS5mcm9udCgpLmE7CiAgICAgICAgaW50IGIgPSBxLmZyb250KCkuYjsKICAgICAgICBpbnQgYyA9IHEuZnJvbnQoKS5jOwogICAgICAgIHEucG9wKCk7CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IDY7IGkrKyl7CiAgICAgICAgICAgIGludCBuYSA9IG1heCgwLCBhIC0gYXBbaV1bMF0pOwogICAgICAgICAgICBpbnQgbmIgPSBtYXgoMCwgYiAtIGFwW2ldWzFdKTsKICAgICAgICAgICAgaW50IG5jID0gbWF4KDAsIGMgLSBhcFtpXVsyXSk7CiAgICAgICAgICAgIGlmKHZpc2l0ZWRbbmFdW25iXVtuY10pIGNvbnRpbnVlOwogICAgICAgICAgICB2aXNpdGVkW25hXVtuYl1bbmNdID0gdmlzaXRlZFthXVtiXVtjXSArIDE7CiAgICAgICAgICAgIHEucHVzaCh7bmEsIG5iLCBuY30pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZih2aXNpdGVkWzBdWzBdWzBdKSBicmVhazsKICAgIH0KICAgIHJldHVybiB2aXNpdGVkWzBdWzBdWzBdOwp9CgppbnQgbWFpbigpewogICAgY2luID4+IG47CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgIH0KICAgIGNvdXQgPDwgc29sdmUoYVswXSwgYVsxXSwgYVsyXSkgPDwgJ1xuJzsKfQ==