XXVI Olimpíada Brasileira de Informática
Submeta sua solução

Nome do arquivo: minicalc.x, onde x deve ser c, cpp, java, js ou py

Mini-calculadora

Arthur é um menino pobre, e por isso tudo o que ele tem é de qualidade inferior. Porém, Arthur é uma pessoa muito inteligente e dedicada, e portanto está na escola, para poder ter uma boa educação e conseguir mudar essa situação. Atualmente, Arthur está estudando divisão, na matéria de matemática. Na hora fazer exercícios, os alunos fazem uso de uma calculadora para verificar se o que fizeram está correto. Como sabemos, Arthur não tem muito dinheiro, logo a calculadora que ele tem não é muito boa. Tal calculadora reconhece apenas números com N bits, ou seja, ela não é capaz de fazer contas com números maiores ou iguais a 2N. Arthur, por ser inteligente, consegue, na maioria das vezes, contornar esse problema de uma maneira muito perspicaz. Por exemplo, suponha que arthur precise fazer o calculo da divisão 200/90 (duzentos dividido por noventa), mas que sua calculadora seja de apenas 5 bits (isto é, não consegue trabalhar com números maiores ou iguais que 25 = 32. Ele sabe que se dividir o dividendo e o divisor por 10, o resultado continuará o mesmo. Então, ele faz o cálculo de 20/9, e consegue o resultado desejado (você pode assumir que, mesmo que o resultado não seja um número inteiro, ele será mostrado mesmo assim). Arthur, porém, começou a estudar outras matérias mais avançadas, como multiplicação e geometria, e já não tem tanto tempo livre para descobrir maneiras de fazer divisões em sua calculadora. Ele pede a sua ajuda para fazer um programa que, dados o número de bits da calculadora, o dividendo e o divisor, diga a ele a melhor maneira de se calcular a divisão em tal calculadora. A melhor maneira é aquela em que o dividendo e o divisor são os menores possíveis, e ainda assim o resultado é exatamente o mesmo que o da divisão dada na entrada.

Entrada

A entrada contém um único teste, a ser lido da entrada padrão. O teste contém uma linha com três inteiros N, D, Q indicando, respectivamente, o número de bits da calculadora, o dividendo e o divisor da conta que Arthur precisa fazer.

Saída

Seu programa deve imprimir uma única linha na saída padrão, contendo dois inteiros R e P, onde R é o dividendo e P é o divisor, mostrando a melhor maneira possível de se efetuar a divisão na calculadora de Arthur. Se for impossível realizar essa divisão na calculadora dada, mostre a palavra IMPOSSIVEL (com letras maiúsculas, sem acento).

Restrições

  • 1 ≤ N ≤ 1000 1 ≤ N ≤ 30
  • 1 ≤ D ≤ 268435456
  • 2 ≤ Q ≤ 268435456

Exemplos

Entrada
30 200 90
Saída
20 9
Entrada
16 62 5
Saída
IMPOSSIVEL
Entrada
100 31 29
Saída
31 29
Tarefas Programação Nível Júnior
Promoção:
sbc
Patrocínio
 
Apoio
 
Coordenação