| Task: | Hacking hashes |
| Sender: | aalto25l_005 |
| Submission time: | 2025-11-19 18:10:17 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.00 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.00 s | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | ACCEPTED | 0.00 s | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | ACCEPTED | 0.00 s | details |
| #14 | ACCEPTED | 0.00 s | details |
| #15 | ACCEPTED | 0.00 s | details |
| #16 | ACCEPTED | 0.00 s | details |
| #17 | ACCEPTED | 0.00 s | details |
| #18 | ACCEPTED | 0.00 s | details |
| #19 | ACCEPTED | 0.00 s | details |
| #20 | ACCEPTED | 0.00 s | details |
| #21 | ACCEPTED | 0.00 s | details |
| #22 | ACCEPTED | 0.00 s | details |
| #23 | ACCEPTED | 0.00 s | details |
| #24 | ACCEPTED | 0.00 s | details |
| #25 | ACCEPTED | 0.00 s | details |
| #26 | ACCEPTED | 0.00 s | details |
| #27 | ACCEPTED | 0.00 s | details |
| #28 | ACCEPTED | 0.00 s | details |
| #29 | ACCEPTED | 0.00 s | details |
| #30 | ACCEPTED | 0.00 s | details |
| #31 | ACCEPTED | 0.00 s | details |
| #32 | ACCEPTED | 0.00 s | details |
| #33 | ACCEPTED | 0.00 s | details |
| #34 | ACCEPTED | 0.00 s | details |
| #35 | ACCEPTED | 0.00 s | details |
| #36 | ACCEPTED | 0.00 s | details |
| #37 | ACCEPTED | 0.00 s | details |
| #38 | ACCEPTED | 0.00 s | details |
| #39 | ACCEPTED | 0.00 s | details |
| #40 | ACCEPTED | 0.00 s | details |
| #41 | ACCEPTED | 0.00 s | details |
| #42 | ACCEPTED | 0.00 s | details |
| #43 | ACCEPTED | 0.00 s | details |
| #44 | ACCEPTED | 0.00 s | details |
| #45 | ACCEPTED | 0.00 s | details |
| #46 | ACCEPTED | 0.00 s | details |
| #47 | ACCEPTED | 0.00 s | details |
| #48 | ACCEPTED | 0.00 s | details |
| #49 | ACCEPTED | 0.00 s | details |
| #50 | ACCEPTED | 0.00 s | details |
| #51 | ACCEPTED | 0.00 s | details |
| #52 | ACCEPTED | 0.00 s | details |
| #53 | ACCEPTED | 0.00 s | details |
| #54 | ACCEPTED | 0.00 s | details |
| #55 | ACCEPTED | 0.00 s | details |
| #56 | ACCEPTED | 0.00 s | details |
| #57 | ACCEPTED | 0.00 s | details |
| #58 | ACCEPTED | 0.01 s | details |
| #59 | ACCEPTED | 0.00 s | details |
| #60 | ACCEPTED | 0.00 s | details |
| #61 | ACCEPTED | 0.01 s | details |
| #62 | ACCEPTED | 0.01 s | details |
| #63 | ACCEPTED | 0.00 s | details |
| #64 | ACCEPTED | 0.01 s | details |
| #65 | ACCEPTED | 0.01 s | details |
| #66 | ACCEPTED | 0.01 s | details |
| #67 | ACCEPTED | 0.01 s | details |
| #68 | ACCEPTED | 0.00 s | details |
| #69 | ACCEPTED | 0.01 s | details |
| #70 | ACCEPTED | 0.01 s | details |
| #71 | ACCEPTED | 0.01 s | details |
| #72 | ACCEPTED | 0.01 s | details |
| #73 | ACCEPTED | 0.01 s | details |
| #74 | ACCEPTED | 0.01 s | details |
| #75 | ACCEPTED | 0.02 s | details |
| #76 | ACCEPTED | 0.01 s | details |
| #77 | ACCEPTED | 0.01 s | details |
| #78 | ACCEPTED | 0.01 s | details |
| #79 | ACCEPTED | 0.00 s | details |
| #80 | ACCEPTED | 0.01 s | details |
| #81 | ACCEPTED | 0.00 s | details |
| #82 | ACCEPTED | 0.01 s | details |
| #83 | ACCEPTED | 0.02 s | details |
| #84 | ACCEPTED | 0.02 s | details |
| #85 | ACCEPTED | 0.04 s | details |
| #86 | ACCEPTED | 0.01 s | details |
| #87 | ACCEPTED | 0.03 s | details |
| #88 | ACCEPTED | 0.02 s | details |
| #89 | ACCEPTED | 0.01 s | details |
| #90 | ACCEPTED | 0.01 s | details |
Code
#include <bits/stdc++.h>
using namespace std;
# define MAXSUM 1000001
typedef long long ll;
const ll INF = 1e18;
const int MAXN1 = 1e6;
const int MAXN2 = 1e8;
unordered_map<long long, string> f1;
ll n, q;
ll a, b;
string gen_random(const int len) {
static const char alphanum[] = "abcdefghijklmnopqrstuvwxyz";
std::string tmp_s;
tmp_s.reserve(len);
for (int i = 0; i < len; ++i) {
tmp_s += alphanum[rand() % (sizeof(alphanum) - 1)];
}
return tmp_s;
}
int F(string s, ll A, ll B) {
long long h = 0;
// ll to = 0;
for (char c : s){
h = (h * A + c) % B;
// to += c;
}
// cout << to << endl;
return h;
}
void solve() {
cin >> a >> b;
while (true) {
string temp = gen_random(7);
long long index = F(temp, a, b);
auto it = f1.find(index);
if (it != f1.end()) {
cout << it->second << ' ' << temp;
return;
} else {
f1[index] = temp;
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 6 6 |
| correct output |
|---|
| dxvdzxfqi oheo |
| user output |
|---|
| qbhcdar xrjmowf |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 5 10 |
| correct output |
|---|
| yzzzeszzyc uuhdakc |
| user output |
|---|
| qbhcdar zowkkyh |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 5 2 |
| correct output |
|---|
| oheo yzzzeszzyc |
| user output |
|---|
| qbhcdar zowkkyh |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 6 1 |
| correct output |
|---|
| dxvdzxfqi oheo |
| user output |
|---|
| nwlrbbm qbhcdar |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 10 10 |
| correct output |
|---|
| yzzzeszzyc uuhdakc |
| user output |
|---|
| qbhcdar zowkkyh |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 3 1 |
| correct output |
|---|
| dxvdzxfqi oheo |
| user output |
|---|
| nwlrbbm qbhcdar |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 9 10 |
| correct output |
|---|
| oheo yzzzeszzyc |
| user output |
|---|
| qbhcdar xrjmowf |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 1 3 |
| correct output |
|---|
| dxvdzxfqi oheo |
| user output |
|---|
| qbhcdar zowkkyh |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 9 1 |
| correct output |
|---|
| dxvdzxfqi oheo |
| user output |
|---|
| nwlrbbm qbhcdar |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 1 4 |
| correct output |
|---|
| oheo yzzzeszzyc |
| user output |
|---|
| nwlrbbm iddqscd |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 78 30 |
| correct output |
|---|
| dxvdzxfqi uuhdakc |
| user output |
|---|
| xrjmowf rxsjybl |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 19 7 |
| correct output |
|---|
| dxvdzxfqi uuhdakc |
| user output |
|---|
| iddqscd rxsjybl |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 16 45 |
| correct output |
|---|
| yrrkt aihwbdczv |
| user output |
|---|
| oqhnwnk dkqtbxi |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 78 61 |
| correct output |
|---|
| oedtdfgv zgivhgayf |
| user output |
|---|
| iddqscd rxsjybl |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 52 93 |
| correct output |
|---|
| yzzzeszzyc uuhdakc |
| user output |
|---|
| zowkkyh cbynecd |
Test 16
Verdict: ACCEPTED
| input |
|---|
| 85 82 |
| correct output |
|---|
| dxvdzxfqi onbkb |
| user output |
|---|
| rxsjybl yggxxpk |
Test 17
Verdict: ACCEPTED
| input |
|---|
| 23 33 |
| correct output |
|---|
| yzzzeszzyc aekmllmqu |
| user output |
|---|
| qbhcdar zowkkyh |
Test 18
Verdict: ACCEPTED
| input |
|---|
| 30 19 |
| correct output |
|---|
| oheo jftb |
| user output |
|---|
| nwlrbbm dbefsar |
Test 19
Verdict: ACCEPTED
| input |
|---|
| 66 8 |
| correct output |
|---|
| yzzzeszzyc uuhdakc |
| user output |
|---|
| zowkkyh iddqscd |
Test 20
Verdict: ACCEPTED
| input |
|---|
| 10 44 |
| correct output |
|---|
| uuhdakc gvnyskxly |
| user output |
|---|
| iddqscd gbbuqcl |
Test 21
Verdict: ACCEPTED
| input |
|---|
| 589 888 |
| correct output |
|---|
| irnrs nvmno |
| user output |
|---|
| kuytdlc trwblns |
Test 22
Verdict: ACCEPTED
| input |
|---|
| 49 800 |
| correct output |
|---|
| irnrs nvmno |
| user output |
|---|
| oqhnwnk betokyx |
Test 23
Verdict: ACCEPTED
| input |
|---|
| 209 702 |
| correct output |
|---|
| yzzzeszzyc bpuse |
| user output |
|---|
| lgdgwpb vmxxrdr |
Test 24
Verdict: ACCEPTED
| input |
|---|
| 518 670 |
| correct output |
|---|
| nvmno mgmo |
| user output |
|---|
| xrjmowf betokyx |
Test 25
Verdict: ACCEPTED
| input |
|---|
| 961 295 |
| correct output |
|---|
| aekmllmqu wcpqoadrw |
| user output |
|---|
| iddqscd rxsjybl |
Test 26
Verdict: ACCEPTED
| input |
|---|
| 871 697 |
| correct output |
|---|
| xfwgyq eokm |
| user output |
|---|
| ljptnsn nnyqxnz |
Test 27
Verdict: ACCEPTED
| input |
|---|
| 308 714 |
| correct output |
|---|
| nvmno lcwlpcmzza |
| user output |
|---|
| iicfskp giooobp |
Test 28
Verdict: ACCEPTED
| input |
|---|
| 426 481 |
| correct output |
|---|
| onbkb kqupmfo |
| user output |
|---|
| sofsbcn kuytdlc |
Test 29
Verdict: ACCEPTED
| input |
|---|
| 730 171 |
| correct output |
|---|
| eqdlmuyo wpvfat |
| user output |
|---|
| yggxxpk sofsbcn |
Test 30
Verdict: ACCEPTED
| input |
|---|
| 864 801 |
| correct output |
|---|
| wpvfat onbkb |
| user output |
|---|
| qbhcdar pxrjxki |
Test 31
Verdict: ACCEPTED
| input |
|---|
| 6442 9170 |
| correct output |
|---|
| wgqgje blui |
| user output |
|---|
| veymqpx foubutp |
Test 32
Verdict: ACCEPTED
| input |
|---|
| 2861 290 |
| correct output |
|---|
| wpvfat onbkb |
| user output |
|---|
| sboaguw trwblns |
Test 33
Verdict: ACCEPTED
| input |
|---|
| 8589 597 |
| correct output |
|---|
| oheo uuhdakc |
| user output |
|---|
| yggxxpk xmvtrrb |
Test 34
Verdict: ACCEPTED
| input |
|---|
| 2486 6897 |
| correct output |
|---|
| zlscxfnxo ngvkz |
| user output |
|---|
| ciohord nnyqxnz |
Test 35
Verdict: ACCEPTED
| input |
|---|
| 386 1958 |
| correct output |
|---|
| vdihr miezzgst |
| user output |
|---|
| dkqtbxi nozjkpq |
Test 36
Verdict: ACCEPTED
| input |
|---|
| 4581 4498 |
| correct output |
|---|
| uxqojd rhvuifulrn |
| user output |
|---|
| rfxjujj fdxvtnu |
Test 37
Verdict: ACCEPTED
| input |
|---|
| 7286 877 |
| correct output |
|---|
| irnrs iphgzlf |
| user output |
|---|
| sofsbcn ggkbbip |
Test 38
Verdict: ACCEPTED
| input |
|---|
| 9445 1393 |
| correct output |
|---|
| hdwsfcnq veukbhkw |
| user output |
|---|
| tzyxacb nnyqxnz |
Test 39
Verdict: ACCEPTED
| input |
|---|
| 3848 8971 |
| correct output |
|---|
| xshrtktoj fcuzyfii |
| user output |
|---|
| ztqrsvb dorxxvr |
Test 40
Verdict: ACCEPTED
| input |
|---|
| 5469 57 |
| correct output |
|---|
| dxvdzxfqi yzzzeszzyc |
| user output |
|---|
| zowkkyh yggxxpk |
Test 41
Verdict: ACCEPTED
| input |
|---|
| 40770 64402 |
| correct output |
|---|
| tced hbmnyt |
| user output |
|---|
| uvqhffb foubutp |
Test 42
Verdict: ACCEPTED
| input |
|---|
| 25093 68059 |
| correct output |
|---|
| ljrc wjxknzhykr |
| user output |
|---|
| fotpqhv zqgkmlh |
Test 43
Verdict: ACCEPTED
| input |
|---|
| 37455 79656 |
| correct output |
|---|
| tppoycpya wviirv |
| user output |
|---|
| fnpaqel yjrifxi |
Test 44
Verdict: ACCEPTED
| input |
|---|
| 11506 49687 |
| correct output |
|---|
| xaupctgiid jcdd |
| user output |
|---|
| opubjgu qcvdeqj |
Test 45
Verdict: ACCEPTED
| input |
|---|
| 83486 43255 |
| correct output |
|---|
| bodw cdmncijoh |
| user output |
|---|
| pjvoaxd eyqcrgl |
Test 46
Verdict: ACCEPTED
| input |
|---|
| 98903 30455 |
| correct output |
|---|
| xshrtktoj pofnegkmkq |
| user output |
|---|
| zwswybg kqllszk |
Test 47
Verdict: ACCEPTED
| input |
|---|
| 78385 25806 |
| correct output |
|---|
| fnyjzygwa zyfhqqpkk |
| user output |
|---|
| nozjkpq yxlmndq |
Test 48
Verdict: ACCEPTED
| input |
|---|
| 11350 85178 |
| correct output |
|---|
| tsgztkzvwc rkra |
| user output |
|---|
| iqfmzhl ioxhhfr |
Test 49
Verdict: ACCEPTED
| input |
|---|
| 1750 42650 |
| correct output |
|---|
| rlmle czxwmutnse |
| user output |
|---|
| mpapqfw afadrrw |
Test 50
Verdict: ACCEPTED
| input |
|---|
| 30097 47375 |
| correct output |
|---|
| zlscxfnxo ayfmd |
| user output |
|---|
| gehljxe ddktdji |
Test 51
Verdict: ACCEPTED
| input |
|---|
| 494714 129204 |
| correct output |
|---|
| czxwmutnse hudvk |
| user output |
|---|
| gdewhta fdxvtnu |
Test 52
Verdict: ACCEPTED
| input |
|---|
| 675884 327185 |
| correct output |
|---|
| rlmle rejxztcu |
| user output |
|---|
| amludfy hgsbaec |
Test 53
Verdict: ACCEPTED
| input |
|---|
| 823296 823560 |
| correct output |
|---|
| ratyx aurscmksx |
| user output |
|---|
| oendtom okiiamm |
Test 54
Verdict: ACCEPTED
| input |
|---|
| 846854 678908 |
| correct output |
|---|
| rfpuucjk yjndrg |
| user output |
|---|
| qyoygyx vhqnddj |
Test 55
Verdict: ACCEPTED
| input |
|---|
| 420278 193978 |
| correct output |
|---|
| begabk sqac |
| user output |
|---|
| ozwknwy gqfmzjq |
Test 56
Verdict: ACCEPTED
| input |
|---|
| 93130 695227 |
| correct output |
|---|
| nkomreccwl dfboyzq |
| user output |
|---|
| ageltkc sqanifm |
Test 57
Verdict: ACCEPTED
| input |
|---|
| 984414 95962 |
| correct output |
|---|
| plsmw rufywewnbq |
| user output |
|---|
| adeuguu wkqwgxy |
Test 58
Verdict: ACCEPTED
| input |
|---|
| 87370 612080 |
| correct output |
|---|
| psmbxgyf yzwvwyf |
| user output |
|---|
| ozvrgva wsmlqra |
Test 59
Verdict: ACCEPTED
| input |
|---|
| 365188 833610 |
| correct output |
|---|
| jbbjpkxs asruylwnc |
| user output |
|---|
| tdmfrtz ynrrxlb |
Test 60
Verdict: ACCEPTED
| input |
|---|
| 924244 804799 |
| correct output |
|---|
| bxok beqs |
| user output |
|---|
| hxzjywu deblevc |
Test 61
Verdict: ACCEPTED
| input |
|---|
| 3012218 7755483 |
| correct output |
|---|
| rzhfdn bhig |
| user output |
|---|
| qpizqcl lkztkme |
Test 62
Verdict: ACCEPTED
| input |
|---|
| 8254242 8634301 |
| correct output |
|---|
| gleo mavrtxor |
| user output |
|---|
| lmojyzo ljhnmvl |
Test 63
Verdict: ACCEPTED
| input |
|---|
| 337938 5429289 |
| correct output |
|---|
| hexlssw zxdfne |
| user output |
|---|
| kzgtioo zqhmwko |
Test 64
Verdict: ACCEPTED
| input |
|---|
| 5545825 4865884 |
| correct output |
|---|
| copwroka xebbxy |
| user output |
|---|
| eepehgv mklyogi |
Test 65
Verdict: ACCEPTED
| input |
|---|
| 3795375 7727646 |
| correct output |
|---|
| rgde yqleban |
| user output |
|---|
| sykihdd sdybxzp |
Test 66
Verdict: ACCEPTED
| input |
|---|
| 2188983 8702106 |
| correct output |
|---|
| zmjbhiiqo gyrickzf |
| user output |
|---|
| udkbziu cbuaurl |
Test 67
Verdict: ACCEPTED
| input |
|---|
| 1544663 1956286 |
| correct output |
|---|
| lwvsjair peplyj |
| user output |
|---|
| cnrxtbp kuiijax |
Test 68
Verdict: ACCEPTED
| input |
|---|
| 5464835 7522941 |
| correct output |
|---|
| wjctw wqbqsqcdqg |
| user output |
|---|
| onazkxi tyzcgef |
Test 69
Verdict: ACCEPTED
| input |
|---|
| 2596718 4049688 |
| correct output |
|---|
| nvyasakcug bsbyew |
| user output |
|---|
| rgtekic kbqqbji |
Test 70
Verdict: ACCEPTED
| input |
|---|
| 2965922 4020437 |
| correct output |
|---|
| zthes oazfss |
| user output |
|---|
| tkczpfh puubmhh |
Test 71
Verdict: ACCEPTED
| input |
|---|
| 56122287 60624959 |
| correct output |
|---|
| hgllxkyp oukmzblohw |
| user output |
|---|
| hswolxr hzysiak |
Test 72
Verdict: ACCEPTED
| input |
|---|
| 42645140 73661194 |
| correct output |
|---|
| xkdotul jvryawmaj |
| user output |
|---|
| atvvmjd bggxemv |
Test 73
Verdict: ACCEPTED
| input |
|---|
| 44585330 18926703 |
| correct output |
|---|
| yqmfko hogdxzgt |
| user output |
|---|
| vaywjlf nyitnwg |
Test 74
Verdict: ACCEPTED
| input |
|---|
| 56325214 7232406 |
| correct output |
|---|
| wvmuumpi weyyifgfw |
| user output |
|---|
| rkhpcir zlpwfux |
Test 75
Verdict: ACCEPTED
| input |
|---|
| 98889561 92098565 |
| correct output |
|---|
| xcesn xvzzheobbo |
| user output |
|---|
| muusguz wtsckup |
Test 76
Verdict: ACCEPTED
| input |
|---|
| 22701272 5642782 |
| correct output |
|---|
| lescyxpmpw hkszwirdqk |
| user output |
|---|
| qeyyzzg misesms |
Test 77
Verdict: ACCEPTED
| input |
|---|
| 91304885 96889971 |
| correct output |
|---|
| rnve dxgzxms |
| user output |
|---|
| mbxmwfp zbbdlth |
Test 78
Verdict: ACCEPTED
| input |
|---|
| 7803372 23247950 |
| correct output |
|---|
| aofeuxbryn bgcepuzv |
| user output |
|---|
| nzbwxot jaichpz |
Test 79
Verdict: ACCEPTED
| input |
|---|
| 89317875 1136575 |
| correct output |
|---|
| kfdzbbelk esohyirdk |
| user output |
|---|
| hntdcct jzhwsut |
Test 80
Verdict: ACCEPTED
| input |
|---|
| 1060874 37270195 |
| correct output |
|---|
| pkkvrpnjgw aoljv |
| user output |
|---|
| yeeffhd rryiafe |
Test 81
Verdict: ACCEPTED
| input |
|---|
| 828199235 320792352 |
| correct output |
|---|
| cmqjomgda cyptxxyb |
| user output |
|---|
| omfbrnk onnmkbj |
Test 82
Verdict: ACCEPTED
| input |
|---|
| 193563111 73343920 |
| correct output |
|---|
| gtswukro ziuzhijy |
| user output |
|---|
| nkazqfr ifxqctn |
Test 83
Verdict: ACCEPTED
| input |
|---|
| 165531091 479126951 |
| correct output |
|---|
| ozbczatbfr nplek |
| user output |
|---|
| ohdujbz ewoghhu |
Test 84
Verdict: ACCEPTED
| input |
|---|
| 835051605 652127789 |
| correct output |
|---|
| ypkbe jvzy |
| user output |
|---|
| odsbaig jmjpbxq |
Test 85
Verdict: ACCEPTED
| input |
|---|
| 551842459 989875543 |
| correct output |
|---|
| ajtuqsqbs tqboquks |
| user output |
|---|
| khydinl zdcults |
Test 86
Verdict: ACCEPTED
| input |
|---|
| 911411059 873575358 |
| correct output |
|---|
| bhhhipl bcgsdgu |
| user output |
|---|
| rtrtaoa hrcocww |
Test 87
Verdict: ACCEPTED
| input |
|---|
| 239756971 350744380 |
| correct output |
|---|
| gddvcp osie |
| user output |
|---|
| deaiszl rxswjmi |
Test 88
Verdict: ACCEPTED
| input |
|---|
| 316394140 195182397 |
| correct output |
|---|
| jthyube jxvfzsh |
| user output |
|---|
| uaafthz iovniib |
Test 89
Verdict: ACCEPTED
| input |
|---|
| 698334027 81615941 |
| correct output |
|---|
| ikrcixfxr ugacbxbd |
| user output |
|---|
| yxsafpf yzdlqhd |
Test 90
Verdict: ACCEPTED
| input |
|---|
| 104725912 462211740 |
| correct output |
|---|
| alzppvu qlyi |
| user output |
|---|
| zlqmngf ykhwamz |
