```ts
export function stepsOn(first: number, count: number): number[] {
  if (!Number.isInteger(first) || !Number.isInteger(count)) {
    throw new Error('Both first and count must be integers');
  }
  if (count <= 0) {
    throw new Error('Count must be a positive integer');
  }

  const sequence = Array.from({ length: count }, (_, i) => first + i);
  return sequence;
}

export function holeFind(seen: number[], first: number, count: number): number | undefined {
  if (!Number.isInteger(first) || !Number.isInteger(count)) {
    throw new Error('Both first and count must be integers');
  }
  if (count <= 0) {
    throw new Error('Count must be a positive integer');
  }

  const sequence = stepsOn(first, count);
  for (let i = 0; i < sequence.length; i++) {
    if (!seen.includes(sequence[i])) {
      return sequence[i];
    }
  }
  return undefined;
}
```