# Generate a permutation from the high-water marks [tag:code-golf] [tag:permutations] [tag:restricted-complexity] [tag:open-ended-function]
Given a permutation, we can define its high-water marks as the indices in which its cumulative maximum increases, or, equivalently, indices with values bigger than all previous values.

For example, the permutation \$ 4, 2, 3, 7, 8, 5, 6, 1 \$, with a cumulative maximum of \$ 4, 4, 4, 7, 8, 8, 8, 8 \$ has \$1, 4, 5\$ as (1-indexed) high-water marks, corresponding to the values \$4, 7, 8\$.

Given a list of indices and a number \$n\$, generate some permutation of size \$n\$ with the list as its high-water marks **in polynomial time in \$n\$**.

This is code golf, so the shortest solution in each language wins.

## Test Cases
In all of those except the first there isn't a single valid output, and you may output any valid permutation.
```
[1, 2, 3], 3 -> [1, 2, 3]
[1, 2, 3], 5 -> [2, 3, 5, 4, 1]
[1, 4, 5], 8 -> [4, 2, 3, 7, 8, 5, 6, 1]
[1], 5 -> [5, 4, 3, 2, 1]
[1, 5], 6 -> [4, 1, 3, 2, 6, 5]
```

## Rules
- You can use any reasonable I/O format. In particular, you can choose:
  - To take the input list as a bitmask of size \$n\$, and if you do that whether to take the size at all.
  - Whether the input is 0-indexed or 1-indexed.
  - Whether to have the first index (which is always a high-water mark) in the input. When taking a bitmask, you may take a bitmask of size \$n-1\$ without the first value. When taking a list of indices, you can have it indexed ignoring the first value.
  - Whether the output is a permutation of the values \$0,1,...,n-1\$ or \$1,2,...,n\$.
  - To output any non-empty set of the permutations, as long as the first permutation is outputted in polynomial time.
  - To have the cumulative minimum decrease in the given points instead.
  - To have the cumulative operation work right-to-left, instead of left-to-right.
- It is allowed for your algorithm to be non-deterministic, as long as it outputs a valid permutation with probability 1 and there's a polynomial \$p(n)\$ such that the probability it takes more than \$p(n)\$ time to run is [negligible](https://en.wikipedia.org/wiki/Negligible_function). The particular distribution doesn't matter.
- [Standard loopholes](https://codegolf.meta.stackexchange.com/questions/1061/loopholes-that-are-forbidden-by-default) are disallowed.