public class Euler750 {

    public static String solve() {
        int n = 976;
        int mod = n + 1;
        int[] pos = new int[n + 1];

        int value = 1;
        for (int i = 1; i <= n; ++i) {
            value = (int) ((3L * value) % mod);
            if (value <= 0 || value > n || pos[value] != 0) {
                return "-1";
            }
            pos[value] = i;
        }

        for (int card = 1; card <= n; ++card) {
            if (pos[card] == 0) {
                return "-1";
            }
        }

        long inf = 1L << 60;
        long[][] dp = new long[n + 1][n + 1];

        for (int len = 2; len <= n; ++len) {
            for (int l = 1; l + len - 1 <= n; ++l) {
                int r = l + len - 1;
                long best = inf;
                long posR = pos[r];

                for (int m = l; m < r; ++m) {
                    long candidate = dp[l][m] + dp[m + 1][r] + Math.abs((long) pos[m] - posR);
                    if (candidate < best) {
                        best = candidate;
                    }
                }
                dp[l][r] = best;
            }
        }

        return Long.toString(dp[1][n]);
    }

    public static void main(String[] args) {
        System.out.println(solve());
    }
}
