Go: package main

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

var scanner = bufio.NewScanner(os.Stdin)

func main() {
	for scanner.Scan() {
		var result string
		line := scanner.Text()
		key := make(map[string]string)

		var i int32
		for ; i < 52; i++ {
			makeKey(key, i)
			result = decode(key, line)

			if strings.Contains(result, "the") {
				break
			} else if strings.Contains(result, "this") {
				break
			} else if strings.Contains(result, "that") {
				break
			}
		}

		fmt.Println(result)
	}
}

func makeKey(key map[string]string, shift int32) {
	for i := 'a'; i <= 'z'; i++ {
		cipher := (i + shift)
		if cipher > 'z' {
			cipher = cipher%'z' + 'a' - 1
		} else if cipher < 'a' {
			cipher = cipher + ('z' - 'a') + 1
		}
		key[string(i)] = string(cipher)
	}
}

func decode(key map[string]string, cipher string) string {
	var result string
	for _, v := range cipher {
		if key[string(v)] != "" {
			result += key[string(v)]
		} else {
			result += string(v)
		}
	}
	return result
}

Python: import sys
def main():
    ex = ["the", "this", "that"]
    lc = [chr(i) for i in range(97, 97 + 26)]
    #lowwer case

    for line in sys.stdin:
        s = line.split()

        for i in range(len(s)):
            a = s[i]
            cnt = 0
            while a not in ex and cnt < 25:
                a = list(a)
                for j in range(len(a)):
                    if a[j] == "z":
                        a[j] = "a"
                    elif a[j] == ".":
                        pass
                    else:
                        a[j] = lc[lc.index(a[j]) + 1]
                hoge = ""
                for j in a:
                    hoge += j

                a = hoge
                cnt += 1
            if cnt != 25:
                break

        for i in range(len(s)):
            a = list(s[i])
            for j in range(len(a)):
                if a[j] == ".":
                    pass
                else:
                    fuga = lc.index(a[j]) + cnt
                    if fuga > 25:
                        a[j] = lc[fuga - 26]
                    else:
                        a[j] = lc[fuga]
            else:
                hoge = ""
                for k in a:
                    hoge += k
                else:
                    s[i] = hoge

        for i in s:
            print(i, end = " ")
        print()


if __name__ == "__main__":
    main()

Python: import sys
import string
f = sys.stdin



sentence = ''.join([line for line in f])

ceasar1 = str.maketrans(string.ascii_lowercase, string.ascii_lowercase[1:] + string.ascii_lowercase[:1])
for i in range(len(string.ascii_lowercase)):
    sentence = sentence.translate(ceasar1)
    words = sentence.split()
    for word in ['the', 'this', 'that']:
        if word in words:
            print(sentence, end='')
            break

Python: #!/usr/bin/env python
import re

def move(char, num):
    if ord(char) + num <= ord('z'):
        return ord(char) + num
    else:
        return ord(char) + num - (ord('z') - ord('a') + 1)

def shift(s, num):
    new = ""
    for i in range(0, len(s)):
        if s[i].isalpha():
            new += str(chr(move(s[i], num)));
        else:
            new += s[i]
    return new

def decrypt(s):
    for i in range(1, 26):
        decrypted = shift(s, i)
        if re.search('the|this|that', decrypted):
            print(decrypted)

if __name__ == '__main__':
    crypted = input()
    print(decrypt(crypted))

Python: # Caesar Cipher
s = input()
while 1:
    for diff in range(0,26):
        dec = []
        for c in s:
            chn = ord(c)
            if 97 <= chn < 97+26:
                chn -= 97 + diff
                chn = (chn % 26) + 97
                dec.append(chr(chn))
            else: dec.append(c)
        ss = ''.join(dec)
        if 'the' in ss or 'that' in ss or 'this' in ss:
            print(ss)
            break
    try: s = input()
    except EOFError: break

Python: import sys
a=lambda x: [''.join([chr(97+(ord(i)-97+j)%26) if i.islower() else i for i in x]) for j in range(26)]
value=['this','that','the']
for s in sys.stdin:
    for i in a(s):
        if sum(map(i.count,value))>0:
            print(i[:-1])

Python: def judge_the(word):
	length=ord('t')-ord(word[0])
	if ord('h')-ord(word[1])==ord('e')-ord(word[2])==length:
		return True
	else:
		return False

A=list(map(str,input().split()))
l=int()
for i in A:
	if len(i)==3:
		if judge_the(i)==True:
			l=ord('t')-ord(i[0])
			break
for i in A:
	for c in i:
		if c=='.':
			print(c,end="")
		else:
			print(chr(ord(c)+l),end="")
	if i!=A[-1]:
		print(end=" ")
	#else:
	#	print()

Python: s = input()
a = "".join([chr(97 + i) for i in range(26)])
b = "".join([a[i - 25] for i in range(26)])
x = str.maketrans(a, b)
while True:
    s = s.translate(x)
    if "the " in s or "that " in s or "this " in s:
        print(s)
        break

Python: import sys
def l(s,n):
    o=ord(s)+n
    if not 97<=ord(s)<=122:
        return s
    if 97<=o<=122:
        return chr(o)
    elif o>123:
        return chr(o-26)

for t in sys.stdin:
    s=t[:-1]
    for i in range(1,26):
        e=lambda s:l(s,i)
        if "".join(map(e,"this")) in s:
            break
        if "".join(map(e,"that")) in s:
            break
        if "".join(map(e,"the")) in s:
            break
    print("".join(map(lambda x:l(x,-i),s)))

Python: import sys;

for line in sys.stdin:
	if (line.find('the') != -1) | (line.find('this') != -1) | (line.find('that') != -1):
		print(line[0:len(line) - 1]);
		continue;
		
	alpha = 'abcdefghijklmnopqrstuvwxyz';
	for i in range(1, 26):
		str = '';
		for j in range(len(line) - 1):
			if ((line[j] == ' ') | (line[j] == '.')):
				str += line[j];
				continue;
			
			index = alpha.find(line[j]);
			str += alpha[(index + i) % 26];
		
		if (str.find('the') != -1) | (str.find('this') != -1) | (str.find('that') != -1):
			print(str);
			break;

Python: import sys
def rp(char,n):
    p=ord(char)+n
    if 97 <= p-n <= 122:
        if p<=122:
            return chr(p)
        else:
            return chr(p-122+96)
    else:
        return char

def find(str):
    for j in range(-25,25):
        l="".join([rp(i,j) for i in str])
        if "this" in l or "the" in l or "that" in l:
            return l

for text in sys.stdin:
    print(find(text))

Python: import sys


def _rot(c, i):
    if ord("a") < ord(c) and ord(c) < ord("z"):
        return chr((ord(c) - ord("a") + i) % 26 + ord("a"))
    if ord("A") < ord(c) and ord(c) < ord("Z"):
        return chr((ord(c) - ord("A") + i) % 26 + ord("A"))
    return c


def rot(str, i):
    g = [_rot(c, i) for c in str]
    return "".join(g)


def caesar(str):
    test=[]
    for i in range(26):
        test = rot(str, i).split()
        if ("this" in test) or ("that" in test) or ("the" in test)or("this." in test) or ("that." in test):
            return " ".join(test)
    return "nan"


a = []
for line in sys.stdin:
    a.append(line)
for i in range(len(a)):
    print(caesar(a[i]))

Python: import sys
a = 'abcdefghijklmnopqrstuvwxyz'
 
for s in sys.stdin:
    for n in range(1, 27):
        t = s[:-1].translate(str.maketrans(a, a[n:] + a[:n]))
        if 'the' in t or 'this' in t or 'that' in t: break
    print(t)

Python: a='abcdefghijklmnopqrstuvwxyz'
while 1:
    try:s=input()
    except:break
    for i in range(1,27):
        b=''
        for x in s:
            b+=a[a.index(x)-i]if x in a else x
        if 'the' in b or 'this' in b or 'that' in b:print(b);break