#include <bits/stdc++.h>
using namespace std;

string swap(string s, int index) {
    char temp = s[index];
    s[index] = s[index + 1];
    s[index + 1] = temp;
    return s;
}

int bfs(string s, string target, int length) { 
    int minMove = INT_MAX;
    set<string> visited;
    queue<pair<string, int>> q;
    q.emplace(s, 0);

    while (!q.empty()) {
        pair<string, int> p = q.front(); q.pop();
        if (visited.find(p.first) != visited.end()  || p.second >= minMove) continue;
        if (p.first.find(target) != string::npos) {
            minMove = min(minMove, p.second);
            continue;
        } else visited.insert(p.first);

        for (int i = 0; i < length - 1; i++)
            q.emplace(swap(p.first, i), p.second + 1);
    }
    return minMove;
}

int main() {
    string target = "2012", s;
    int length;
    cin >> length;
    cin >> s;
    cout << bfs(s, target, length) << endl;

    return 0;
}