地勢を示す縦 12, 横 12 のマスからなる平面図があります。おのおののマスは白か黒に塗られています。白は海を、黒は陸地を表します。二つの黒いマスが上下、あるいは左右に接しているとき、これらは地続きであるといいます。この平面図では、黒いマス一つのみ、あるいは地続きの黒いマスが作る領域を「島」といいます。例えば下図には、5 つの島があります。                 ■■■■□□□□■■■■ ■■■□□□□□■■■■ ■■□□□□□□■■■■ ■□□□□□□□■■■■ □□□■□□□■□□□□ □□□□□□■■■□□□ □□□□□■■■■■□□ ■□□□■■■■■■■□ ■■□□□■■■■■□□ ■■■□□□■■■□□□ ■■■■□□□■□□□□ □□□□□□□□□□□□   マスのデータを読み込んで、島の数を出力するプログラムを作成してください。
def fill(x, y, board):
    board[y][x] = 2
    points = [[y, x + 1], [y, x - 1], [y + 1, x], [y - 1, x]]
    # y
    if y == 0:
        points.remove([y-1, x])
    elif y == 11:
        points.remove([y+1, x])
    # x
    if x == 0:
        points.remove([y, x - 1])
    elif x == 11:
        points.remove([y, x + 1])
    for p in points:
        if board[p[0]][p[1]] == 1:
            board = fill(p[1], p[0], board)
    return board

islands = [list(map(int, list(input()))) for i in range(12)]
ans = 0

for y in range(12):
    for x in range(12):
        if islands[y][x] == 1:
            islands = fill(x, y, islands)
            ans += 1
print(ans)
def fill(x, y, board):
    board[y][x] = 2
    points = [[y, x + 1], [y, x - 1], [y + 1, x], [y - 1, x]]

    if y == 0:
        points.remove([y-1, x])
    elif y == 11:
        points.remove([y+1, x])
    if x == 0:
        points.remove([y, x - 1])
    elif x == 11:
        points.remove([y, x + 1])

    for p in points:
        if board[p[0]][p[1]] == 1:
            board = fill(p[1], p[0], board)
    return board

while True:
    try:
        islands = [list(map(int, list(input()))) for i in range(12)]
        ans = 0

        for y in range(12):
            for x in range(12):
                if islands[y][x] == 1:
                    islands = fill(x, y, islands)
                    ans += 1
        print(ans)
        input()
    except:
        break