QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 256 MB Total points: 10

#6069. Karty [A]

الإحصائيات

Bajtazar pracuje jako programista w latach 60. XX wieku. Jest to praca mozolna, gdyż programy wprowadza do komputera nie za pomocą klawiatury, lecz przy użyciu kart perforowanych. Karta rozmiaru $n \times m$ składa się z $n$ · $m$ jednakowych, prostokątnych pól ułożonych w $m$ kolumn po $n$ wierszy. Każde z pól może zostać przedziurkowane. Układ dziurek w karcie koduje treść programu. Na poniższym rysunku przedstawiono przykładową kartę rozmiaru $4 \times 5$. Dziurki w polach zostały zaznaczone czarnymi prostokątami.

problem_6069_1.gif

Bajtazar ma już w głowie program i wie, które pola powinien przedziurkować. Chciałby jednak przygotować kartę możliwie efektywnie. W tym celu postanowił, że wykona prostokątną matrycę, która przyłożona do karty przedziurkuje wszystkie pola w wybranym przez Bajtazara fragmencie rozmiaru $a \times b$ (tj. pola należące do przecięcia $a$ kolejnych wierszy z $b$ kolejnymi kolumnami). Rozmiar tej matrycy powinien być dobrany tak, by przy jej użyciu dało się wykonać kartę perforowaną posiadającą dziurki dokładnie w tych miejscach, w których zaplanował je Bajtazar. Jednocześnie, matryca powinna być jak największa. Ponieważ pola na karcie nie są kwadratowe, matrycy nie wolno obracać (np. by otrzymać matrycę rozmiaru $b \times a$).

Programowanie komputerów zajmuje dziś znacznie mniej czasu niż kiedyś, dlatego Bajtazar poprosił Cię o napisanie programu, który wyznaczy wymiary największej matrycy, za pomocą której można zapisać jego program na karcie.

Input Format

W pierwszym wierszu wejścia znajdują się dwie liczby całkowite $n$ oraz $m$ ($1 \le n,m \le 2\,500$). Oznaczają one, odpowiednio, liczbę wierszy oraz kolumn na karcie perforowanej. Kolejne $n$ wierszy zawiera opis programu Bajtazara. Każdy z tych wierszy składa się z $m$ znaków "_" lub "X". Znak "X" oznacza pole karty, które powinno zostać przedziurkowane, zaś "_" - pole, którego nie należy dziurawić. Możesz założyć, że opis karty zawiera przynajmniej jeden znak "X".

Output Format

Twój program powinien wypisać dwie liczby całkowite $a$ i $b$ opisujące wymiary matrycy, która może posłużyć do wykonania karty opisanej w wejściu. Iloczyn tych dwóch liczb powinien być jak największy. Jeśli istnieje wiele poprawnych odpowiedzi, Twój program powinien wypisać tę o jak najmniejszej wartości $a$.

Examples

Input

4 5
_XXX_
XXXX_
XXXXX
_XXXX

Output

2 3
About Issues

We understand that our problem archive is not perfect. If you find any issues with the problem, including the statement, scoring configuration, time/memory limits, test cases, etc.

You may use this form to submit an issue regarding the problem. A problem moderator will review your issue and proceed it properly.

STOP! Before you submit an issue, please READ the following guidelines:

  1. This is not a place to publish a discussion, editorial, or requests to debug your code. Your issue will only be visible by you and problem moderators. Other users will not be able to view or reply your issues.
  2. Do not submit duplicated issues. If you have already submitted one, please wait for an moderator to review it. Submitting multiple issues will not speed up the review process and might cause your account to be banned.
  3. Issues must be filed in English or Chinese only.
  4. Be sure your issue is related to this problem. If you need to submit an issue regarding another problem, contest, category, etc., you should submit it to the corresponding page.

Active Issues 0

No issues in this category.

Closed/Resolved Issues 0

No issues in this category.