Формат входного файла
В первой строке входного файла input.txt находится одно натуральное число p (2 ≤ p ≤ 1000), равное произведению размеров исходного изображения. В следующей строке перечислены p цветов пикселей самого изображения. Сначала перечислены цвета пикселей первой строки слева направо, затем — второй, и так далее. Цвета пикселей разделены пробелами, каждый цвет является числом, равным 0, если пиксель белый, или 1, если пиксель черный.

Формат выходного файла
В первой строке выходного файла output.txt требуется вывести два числа n и m таких, что их произведение равно числу p. Кроме этого, после записи данных во входном файле пикселей в таблицу из n строчек и m столбцов, должна получаться таблица, в которой ровно один столбец полностью состоит из единиц, а вся остальная таблица заполнена нулями.

В случае, если ответов, отвечающих описанным выше условиям, несколько, выведите любой. В случае, если ни одного ответа не существует, выведите в выходной файл слово Impossible.
Пример входных и выходных данных

input.txt
6
0 1 0 0 1 0
output.txt
2 3

input.txt
12
0 0 1 0 0 0 1 0 0 0 1 0
output.txt
3 4

input.txt
12
0 0 1 0 0 0 1 0 0 0 0 0
output.txt
Impossible

const InFIle='Input.txt'; OutFile='output.txt';
var
  f : text;
  n,m,p,c : word;
  b,otstup : byte;
  first,error : boolean;
Begin
  assign(f,InFile); reset(f);
  readln(f,p); n:=0; c:=0; first:=true; otstup:=0; error:=false;
  while (not eof(f)) and (not error) do begin
    read(f,b); inc(c); inc(n);
    if b=1 then begin
      if first then begin
        first:=otstup=0;
        otstup:=c;
        m:=n;
      end else begin
        error:=n<>m;
      end;
      n:=0;
    end;
  end;
  close(f);
  n:=n+otstup-m;
  error:=error or (p mod n <> 0) or (p<>c) or (m<>n);
  n:=p div m;
  assign(f,OutFile); rewrite(f);
  if error then writeln(f,'Impossible')
  else writeln(f,n,' ',m);
  close(f);
  writeln('Result in file ',OutFile);
  readln;
End.