public class Euler90 {
    static int[][] squares = { { 0, 1 }, { 0, 4 }, { 0, 9 }, { 1, 6 }, { 2, 5 }, { 3, 6 }, { 4, 9 }, { 6, 4 },
            { 8, 1 } };

    static boolean hasDig(int mask, int d) {
        if (d == 6 || d == 9)
            return ((mask >> 6) & 1) == 1 || ((mask >> 9) & 1) == 1;
        return ((mask >> d) & 1) == 1;
    }

    static boolean canDisplay(int m1, int m2) {
        for (int[] sq : squares)
            if (!((hasDig(m1, sq[0]) && hasDig(m2, sq[1])) || (hasDig(m1, sq[1]) && hasDig(m2, sq[0]))))
                return false;
        return true;
    }

    public static void main(String[] args) {
        java.util.List<Integer> masks = new java.util.ArrayList<>();
        for (int m = 0; m < 1024; m++)
            if (Integer.bitCount(m) == 6)
                masks.add(m);
        int count = 0;
        for (int i = 0; i < masks.size(); i++)
            for (int j = i; j < masks.size(); j++)
                if (canDisplay(masks.get(i), masks.get(j)))
                    count++;
        System.out.println(count);
    }
}
