Como processar os primeiros n itens e permanecer um de maneira diferente em um fluxo observável

por exemplo,

dado um fluxo de um certo número (m) de números (m1, m2, m3, m4, m5, m6 ...) e aplique uma transformação (2 * i) nos primeiros n itens (n pode ser menor, igual ou maior que m), aplique outra transformação (3 * i) aos itens restantes. e

resultado de retorno: m1 * 2, m2 * 2, m3 * 3, m4 * 3, m5 * 3, m6 * 3 ... (assumindo n = 2 aqui).

Eu estava tentando usar take (n) e skip (n) e concatwith, mas parece que take (n) soltará os itens restantes na sequência e fará com que skip (n) depois que nada retorne.

questionAnswers(1)

yourAnswerToTheQuestion