class MultiValued {
    int n = 0;
    boolean A[] = null;
    public MultiValued(int maxVal, int initVal) {
        n = maxVal;
        A = new boolean[n];
        for (int i = 0; i < n; i++) A[i] = false;
        A[initVal] = true;
    }
    public int getValue() {
        int j = 0;
        while (!A[j]) j++; // forward scan
        int v = j;
        for (int i = j - 1; i >= 0; i--) // backward scan
            if (A[i]) v = i;
        return v;
    }
    public void setValue(int x) {
        A[x] = true;
        for (int i = x - 1; i >= 0; i--)
            A[i] = false;
    }
}