← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	var s string
	fmt.Fscan(in, &s)
	allUpper := true
	for i := 0; i < len(s); i++ {
		if s[i] >= 'a' && s[i] <= 'z' {
			allUpper = false
			break
		}
	}
	restUpper := true
	for i := 1; i < len(s); i++ {
		if s[i] >= 'a' && s[i] <= 'z' {
			restUpper = false
			break
		}
	}
	if allUpper || restUpper {
		b := []byte(s)
		for i := 0; i < len(b); i++ {
			if b[i] >= 'a' && b[i] <= 'z' {
				b[i] = b[i] - 'a' + 'A'
			} else if b[i] >= 'A' && b[i] <= 'Z' {
				b[i] = b[i] - 'A' + 'a'
			}
		}
		fmt.Print(string(b))
	} else {
		fmt.Print(s)
	}
}