import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @param n int整型 
     * @return string字符串
     */
    public String trans (String s, int n) {
        char[] cs = s.toCharArray();
        reverse(cs, 0, cs.length - 1, true);
        // 找到每个空格,再翻转一次
        int l = 0, r = 0;
        while (r < cs.length) {
            while (r < cs.length && cs[r] != ' ') r++;
            reverse(cs, l, r - 1, false);
            r++;
            l = r;
        }
        return String.valueOf(cs);
    }
    private void reverse(char[] cs, int l, int r, boolean flag) {
        while (l <= r) {
            // flag = true时,顺便将大小写转换了
            char t = flag ? changeCase(cs[l]) : cs[l];
            cs[l] = flag ? changeCase(cs[r]) : cs[r];
            cs[r] = t;
            l++;
            r--;
        }
    }
    private char changeCase(char c) {
        int diff = 'a' - 'A';
        if (c >= 'A' && c <= 'Z') c += diff;
        else if (c >= 'a' && c <= 'z') c -= diff;
        return c;
    }
}