#include <iostream>
#include <vector>
using namespace std;
unsigned int i,t;
bool b1,wl,ml,cyf,zs;
string t1,log,pass;
vector <string> bazal,bazap;
int main()
{
while (cin >> t1 >> t)
{
for (;t>0;t--)
{
b1=0,wl=0,ml=0,cyf=0,zs=0;
cin >> log >> pass;
if (t1=="register")
{
for (i=0;bazal.size()>i;i++) if (bazal[i]==log) {b1=1; break;}
if (b1==1) cout << "Login zajety" << endl;
else
{
if(log.length()>12||log.length()<3||pass.length()>15||pass.length()<5) cout << "Blad" << endl;
else
{
for (i=0;log.length()>i;i++) if(log[i]<'0'||(log[i]>'9'&&log[i]<'A')||(log[i]>'Z'&&log[i]<'a')||log[i]>'z') {b1=1; break;}
if (b1==1) cout << "Blad" << endl;
else
{
for (i=0;pass.length()>i;i++)
{
if (pass[i]>64&&pass[i]<91) wl=1;
else if (pass[i]>96&&pass[i]<123) ml=1;
else if (pass[i]>47&&pass[i]<58) cyf=1;
else zs=1;
}
if(wl!=1||ml!=1||cyf!=1||zs!=1) cout << "Blad" << endl;
else
{
bazal.push_back(log);
bazap.push_back(pass);
cout << "Zarejestrowano" << endl;
}}}}
}
else if (t1=="login")
{
for (i=0;bazal.size()>i;i++)
{
if (bazal[i]==log) b1=1;
if (b1==1&&bazap[i]==pass) {wl=1; break;}
}
if (b1!=1) cout << "Konto nie istnieje" << endl;
else if (wl!=1) cout << "Zle haslo" << endl;
else cout << "Zalogowano" << endl;
}
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1bnNpZ25lZCBpbnQgaSx0Owpib29sIGIxLHdsLG1sLGN5Zix6czsKc3RyaW5nIHQxLGxvZyxwYXNzOwp2ZWN0b3IgPHN0cmluZz4gYmF6YWwsYmF6YXA7CgppbnQgbWFpbigpCnsKICAgIHdoaWxlIChjaW4gPj4gdDEgPj4gdCkKICAgIHsKICAgICAgICAgICAgZm9yICg7dD4wO3QtLSkKICAgICAgICB7CiAgICAgICAgICAgIGIxPTAsd2w9MCxtbD0wLGN5Zj0wLHpzPTA7CiAgICAgICAgICAgIGNpbiA+PiBsb2cgPj4gcGFzczsKICAgICAgICAgICAgaWYgKHQxPT0icmVnaXN0ZXIiKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IgKGk9MDtiYXphbC5zaXplKCk+aTtpKyspICAgIGlmIChiYXphbFtpXT09bG9nKSAge2IxPTE7IGJyZWFrO30KICAgICAgICAgICAgICAgIGlmIChiMT09MSkgIGNvdXQgPDwgIkxvZ2luIHphamV0eSIgPDwgZW5kbDsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGxvZy5sZW5ndGgoKT4xMnx8bG9nLmxlbmd0aCgpPDN8fHBhc3MubGVuZ3RoKCk+MTV8fHBhc3MubGVuZ3RoKCk8NSkgY291dCA8PCAiQmxhZCIgPDwgZW5kbDsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvciAoaT0wO2xvZy5sZW5ndGgoKT5pO2krKykgIGlmKGxvZ1tpXTwnMCd8fChsb2dbaV0+JzknJiZsb2dbaV08J0EnKXx8KGxvZ1tpXT4nWicmJmxvZ1tpXTwnYScpfHxsb2dbaV0+J3onKSB7YjE9MTsgYnJlYWs7fQogICAgICAgICAgICAgICAgaWYgKGIxPT0xKSAgY291dCA8PCAiQmxhZCIgPDwgZW5kbDsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKGk9MDtwYXNzLmxlbmd0aCgpPmk7aSsrKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAocGFzc1tpXT42NCYmcGFzc1tpXTw5MSkgICB3bD0xOwogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBhc3NbaV0+OTYmJnBhc3NbaV08MTIzKSAgbWw9MTsKICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXNzW2ldPjQ3JiZwYXNzW2ldPDU4KSAgY3lmPTE7CiAgICAgICAgICAgICAgICAgICAgZWxzZSB6cz0xOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKHdsIT0xfHxtbCE9MXx8Y3lmIT0xfHx6cyE9MSkgY291dCA8PCAiQmxhZCIgPDwgZW5kbDsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBiYXphbC5wdXNoX2JhY2sobG9nKTsKICAgICAgICAgICAgICAgICAgICBiYXphcC5wdXNoX2JhY2socGFzcyk7CiAgICAgICAgICAgICAgICAgICAgY291dCA8PCAiWmFyZWplc3Ryb3dhbm8iIDw8IGVuZGw7CiAgICAgICAgICAgICAgICB9fX19CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAodDE9PSJsb2dpbiIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvciAoaT0wO2JhemFsLnNpemUoKT5pO2krKykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXphbFtpXT09bG9nKSAgYjE9MTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGIxPT0xJiZiYXphcFtpXT09cGFzcykge3dsPTE7IGJyZWFrO30KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoYjEhPTEpICBjb3V0IDw8ICJLb250byBuaWUgaXN0bmllamUiIDw8IGVuZGw7CiAgICAgICAgICAgICAgICBlbHNlIGlmICh3bCE9MSkgY291dCA8PCAiWmxlIGhhc2xvIiA8PCBlbmRsOwogICAgICAgICAgICAgICAgZWxzZSBjb3V0IDw8ICJaYWxvZ293YW5vIiA8PCBlbmRsOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0K
cmVnaXN0ZXIgMwpiYWp0ZWsxMyBIYXNsbzEyM0AKQklURUsgMTIzNDU2Nzg5CmJhanRlazEzIGJhanRlSzU1JQpsb2dpbiA1CmJhanRlazEzIGJhanRlSzU1JQpiYWp0ZWsxMyBIYXNsbzEyM0AKQklURUsgMTIzNDU2Nzg5CmJhanRvY2p1c3ogaGFzZWxrbzQ5CmJpdGFyaXVzeiAxMjNoYVNsbyFAIwpyZWdpc3RlciAxCkJJVEVLIERvYnJlaGFzbG8xIQpsb2dpbiAxCkJJVEVLIERvYnJlaGFzbG8xIQ==
register 3
bajtek13 Haslo123@
BITEK 123456789
bajtek13 bajteK55%
login 5
bajtek13 bajteK55%
bajtek13 Haslo123@
BITEK 123456789
bajtocjusz haselko49
bitariusz 123haSlo!@#
register 1
BITEK Dobrehaslo1!
login 1
BITEK Dobrehaslo1!