#include <algorithm>
#include <cmath>
#include <deque>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <string>
#include <vector>

using namespace std;

int N = 12;
int M = 12;
int island[14][14];
int visit[14][14];

void dfs(int x, int y) {
    static const int d[4][2] = {
        {0, 1},
        {1, 0},
        {0, -1},
        {-1, 0},
    };
    visit[x][y] = 1;
    for (int i = 0; i < 4; i++) {
        int nx = x + d[i][0];
        int ny = y + d[i][1];
        if (!(0 <= nx && nx < N && 0 <= ny && ny < M))
            continue;
        if (island[nx][ny] && !visit[nx][ny]) {
            dfs(nx, ny);
        }
    }
}

int main() {
    cin.tie(0);
    ios::sync_with_stdio(false);

    for (int x = 0; x < N; x++) {
        string s;
        cin >> s;
        for (int y = 0; y < M; y++) {
            island[x][y] = s[y] - '0';
        }
        // for (int y = 0; y < M; y++) {
        //     cin >> island[x][y];
        // }
    }
    int ans = 0;
    for (int x = 0; x < N; x++) {
        for (int y = 0; y < M; y++) {
            if (island[x][y] && !visit[x][y]) {
                ans++;
                dfs(x, y);
            }
        }
    }
    cout << ans << endl;

    return 0;
}