russia(X):-rchange(X,Z),F="ソビエトロシアでは，~s\n",format(F,[Z]).

rchange(X,Z):-pref(X,Y,[V|W]),pref(W,S,T),append([],S,A1),append(A1,[V],A2),append(A2,Y,A3),append(A3,T,Z).

pref([X|Y],[],[X|Y]):-joshi(X),!.
pref([X|Y],[X|W],Z):-pref(Y,W,Z).

joshi(X):-eq(X,"が").
joshi(X):-eq(X,"は").
joshi(X):-eq(X,"を").
joshi(X):-eq(X,"に").
joshi(X):-eq(X,"で").
joshi(X):-eq(X,"も").
joshi(X):-eq(X,"へ").

eq(X,[X|_]).

append([],L,L).
append([E|L1],L2,[E|L]):-append(L1,L2,L).

