É-lhe fornecido um array binário de tamanho n, composto por 0s e 1s, em que os elementos do array estão numerados de 1 a n. É necessário processar q consultas, com cada consulta a poder ser de dois tipos:
Tipo de consulta 1: Encontrar o índice da k-ésima ocorrência de 1 no array.
Tipo de consulta 2: Atualizar o valor num índice específico do array.
Escreva um programa que consiga responder de forma eficiente a estas consultas.
Entrada
Na primeira linha, são fornecidos dois inteiros n e q, separados por um espaço, que representam o tamanho do array binário e o número de consultas, respetivamente.
Na segunda linha, surgem os n elementos binários do array.
Nas q linhas seguintes, são apresentadas as consultas. Cada consulta é descrita por um tipo (1 ou 2), seguido dos parâmetros necessários:
Para o tipo de consulta 1: um inteiro k (1 ≤ k ≤ n).
Para o tipo de consulta 2: um índice inteiro p (1 ≤ p ≤ n) e um valor ( ou ) para atualizar nesse índice.
Saída
Para cada consulta do tipo 1, imprima o índice da k-ésima ocorrência de 1 no array. Se não existir esta k-ésima ocorrência, imprima -1.