#include <iostream>
#include <vector>
#include <queue>
#include <tuple>
#include <climits>

using namespace std;

int dx[] = {0, 1, 0, -1};
int dy[] = {1, 0, -1, 0};

int main() {
    int n;
    cin >> n;
    
    vector<vector<int>> grid(n, vector<int>(n));
    vector<vector<int>> dist(n, vector<int>(n, INT_MAX));

    for (int i = 0; i < n; i++) {
        string line;
        cin >> line;
        for (int j = 0; j < n; j++) {
            grid[i][j] = line[j] - '0';
        }
    }

    priority_queue<tuple<int, int, int>, vector<tuple<int, int, int>>, greater<tuple<int, int, int>>> pq;
    pq.push({0, 0, 0}); // {바꾼 방의 수, x, y}
    dist[0][0] = 0;

    while (!pq.empty()) {
        auto [changeCount, x, y] = pq.top();
        pq.pop();

        if (x == n-1 && y == n-1) {
            cout << changeCount << endl;
            return 0;
        }

        for (int i = 0; i < 4; i++) {
            int nx = x + dx[i];
            int ny = y + dy[i];

            if (nx >= 0 && nx < n && ny >= 0 && ny < n) {
                int nextChangeCount = changeCount + (grid[nx][ny] == 0 ? 1 : 0);
                if (nextChangeCount < dist[nx][ny]) {
                    dist[nx][ny] = nextChangeCount;
                    pq.push({nextChangeCount, nx, ny});
                }
            }
        }
    }

    return 0;
}
#include <iostream>
#include <cmath>
#define MAX_SIZE 1000000
using namespace std;
bool  isComposite[MAX_SIZE]; // 어차피 n은 짝수(문제에서 주어짐)

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
	int n;
	int i, j;
	bool flag = true;

	isComposite[0] = true;
	isComposite[1] = true;

	for (int i = 2;i <= sqrt(MAX_SIZE);i++) {
		if (isComposite[i] == false) {
			for (int j = i * i;j <= MAX_SIZE;j += i) {
				isComposite[j] = true;
			}
		}
	}

	while (1) {
		cin >> n;
		if (n == 0) {
			break;
		}

		for (i = 3;i <= n / 2;i += 2) {
			j = n - i;

			if (!isComposite[i] && !isComposite[j]) {
				cout << n << " = " << i << " + " << j << "\\n";
				flag = false;
				break;
			}

		}
		if (flag == true) {
			cout << "Goldbach's conjecture is wrong." << "\\n";
		}

	}

	return 0;
}