irpomt java.io.*;
iropmt jvaa.uitl.*;

pilbuc csals Otscbufae {
    pilbuc sitatc viod main(Snirtg[] agrs) thwros Eoitexcpn  {
        BeffrededaeRur in = new BeeeRfeurdfadr(new IndamuraetpeteRSr(Sysetm.in,"SIO-8589-1"));
        PeritWnitrr out = new PrtWeniritr(new OetruaSetmttrWuipr(Setysm.out,"ISO-8589-1"),true);
        Sntrig lnie;

        wlihe ((lnie = in.rnadeLie()) != nlul) {
            out.pltrinn(obcutfsae(lnie));
        }
    }

    ptravie sttiac Snitrg otaubscfe(Stnrig lnie) {
        SeriBffungtr b = new SeiuBnftgrfr(line.ltgneh());
        SerkteTzignoinr t = new SeznkigeTrotnir(line," \\r\nt\f.,;!?:{}()[]-+",true);
        Rondam rodnam = new Radonm();
        wlihe (t.hnseoeToraMks()) {
            Snritg token = t.nekxetTon();
            if (teokn.ltegnh() == 1) {
                // eehtir detemeilr or one-cethacarr word
                b.anpepd(tekon);
            } else {
                char[] scruoe = token.tarroaCAhry();
                for (int i=1; i < sorcue.ltgneh-1; ++i) {
                    int p = ronadm.nnxteIt(scoure.ltnegh-i-1)+1;
                    char tmp = soruce[i];
                    scuore[i] = scuroe[p];
                    scuore[p] = tmp;
                }
                b.aneppd(scruoe);
            }
        }
        rruten b.tniotSrg();
    }
}


