Zadanie 7 (termin oddania 9.02, 18:30, 4 pkt.)
----------------------------------------------

W pliku kostki: file of array[1..n,1..n] of 0..1 znajduja
sie opisy kostek ukladanki. Wartosc 1 oznacza, ze odpowiednie
pole jest elementem kostki, 0 ze nie. Np. dla n = 4 jedna
z kostek moglaby miec postac:

 0 1 0 0
 1 1 1 0
 0 1 0 0
 0 0 0 0

W pliku figura: file of array[1..m,1..m] of integer znajduje sie zestaw
ukladanek do ulozenia. Kazda ukladanka ma postac analogiczna jak
kostka (tyle ze m jest zapewne wieksze od n). Zagadke daje sie
rozwiazac wtedy i tylko wtedy, gdy da sie tak ulozyc _wszystkie_
kostki ukladanki, kazda dokladnie raz, zeby wszystkie jedynki 
kostek znajdowaly sie na polach ukladanki z wartoscia 1 i na kazde
pole ukladanki z wartoscia 1 byla polozona dokladnie jedna czesc kostki
z jedynka. Z powyzszego wynika, ze aby udalo sie ulozyc
ukladanke liczba jedynek we wszystkich kostkach musi byc
rowna liczbie jedynek w ukladance. Wynika stad rowniez, ze
kostka n*n moze wystawac poza ukladanke, ale tylko czescia
nie zawierajaca jedynek.

Uwaga: kostki mozna obracac, ale nie mozna ich odwracac na druga
strone.

Mozna zalozyc, ze liczba kostek jest nie wieksza niz stala
MaxLKostek=20, stala n wynosi 4, zas stala m=10.

Napisz program, ktory wywolany z dwoma parametrami: nazwa pliku
z kostkami i nazwa pliku z ukladankami wypisze na standardowe wyjscie
dla kazdej ukladanki w osobnym wierszu liczbe sposobow jej ulozenia
(nie uwzgledniajac symetrii, tzn. np. nie przejmujemy sie tym,
ze pokazana powyzej kostke mozna polozyc ze wzgledu na obroty
na 4 sposoby, ktore sa ze soba identyczne, nie przejmujemy sie
rowniez tym, ze sama ukladanka moze miec osie symetrii).

Bledne sytuacje (np. brak plikow z danymi) nalezy zasygnalizowac
stosownym komunikatem wypisanym na standardowe wyjscie a potem
nalezy wywolac procedure halt.