#include <iostream>
#include <string>
#include <vector>
#include <array>
#include <algorithm>

using namespace std;

int main(){
	ios_base::sync_with_stdio(false);
	int n;
	cin >> n;
	array<int, 3> a = { 0, 0, 0 };
	for(int i = 0; i < n; ++i){
		int t;
		cin >> t;
		++a[t % 3];
	}
	if(a[1] == 0 && a[2] == 0){
		cout << 1 << endl;
		return 0;
	}
	int answer = 0;
	if(a[1] >= 1){
		auto b = a;
		int local = 1, c = 1;
		--b[1];
		while(c != 0){
			if(b[0] > 0){
				--b[0];
				++local;
			}else if(c == 1 && b[1] > 0){
				--b[1];
				++local;
				c = 2;
			}else if(c == 2 && b[2] > 0){
				--b[2];
				++local;
				c = 1;
			}else if(c == 1 && b[2] > 0){
				--b[2];
				++local;
				c = 0;
			}else if(c == 2 && b[1] > 0){
				--b[1];
				++local;
				c = 0;
			}else{
				break;
			}
		}
		answer = max(answer, local);
	}
	if(a[1] >= 2){
		auto b = a;
		int local = 2, c = 2;
		--b[1]; --b[1];
		while(c != 0){
			if(b[0] > 0){
				--b[0];
				++local;
			}else if(c == 1 && b[1] > 0){
				--b[1];
				++local;
				c = 2;
			}else if(c == 2 && b[2] > 0){
				--b[2];
				++local;
				c = 1;
			}else if(c == 1 && b[2] > 0){
				--b[2];
				++local;
				c = 0;
			}else if(c == 2 && b[1] > 0){
				--b[1];
				++local;
				c = 0;
			}else{
				break;
			}
		}
		answer = max(answer, local);
	}
	if(a[2] >= 1){
		auto b = a;
		int local = 1, c = 2;
		--b[2];
		while(c != 0){
			if(b[0] > 0){
				--b[0];
				++local;
			}else if(c == 1 && b[1] > 0){
				--b[1];
				++local;
				c = 2;
			}else if(c == 2 && b[2] > 0){
				--b[2];
				++local;
				c = 1;
			}else if(c == 1 && b[2] > 0){
				--b[2];
				++local;
				c = 0;
			}else if(c == 2 && b[1] > 0){
				--b[1];
				++local;
				c = 0;
			}else{
				break;
			}
		}
		answer = max(answer, local);
	}
	if(a[2] >= 2){
		auto b = a;
		int local = 2, c = 1;
		--b[2]; --b[2];
		while(c != 0){
			if(b[0] > 0){
				--b[0];
				++local;
			}else if(c == 1 && b[1] > 0){
				--b[1];
				++local;
				c = 2;
			}else if(c == 2 && b[2] > 0){
				--b[2];
				++local;
				c = 1;
			}else if(c == 1 && b[2] > 0){
				--b[2];
				++local;
				c = 0;
			}else if(c == 2 && b[1] > 0){
				--b[1];
				++local;
				c = 0;
			}else{
				break;
			}
		}
		answer = max(answer, local);
	}
	cout << answer << endl;
	return 0;
}