private static List<Integer> binomialCongruenceRuleOut(final List<Integer> result) {
        if (result.isEmpty())
            return result;
        
        final int resultSize = result.size();
        final int m = result.get(resultSize - 1); // last item is modulus
        if (m % 2 == 1)
            return result;
        
        final int testM = m/2;         
        final int x1 = normalizeIntModulo(result.get(0), testM); // first solution
        final List<Integer> testResult = new ArrayList<>(Arrays.asList(x1));
        for (int i = 1; i < resultSize - 1; ++i) {
            final int xi = normalizeIntModulo(result.get(i), testM);
            final int terminator = testResult.size();
            for (int j = 0; j < terminator; ++j) {
                if (xi == testResult.get(j))
                    break;
                if (Utils.lastForCycle(j, terminator))
                    testResult.add(xi);
            }
        }
        
        if (testResult.size() < resultSize - 1) {
            testResult.add(testM);
            return testResult;
        }
        return result;
    }