Go: package main

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

var scanner = bufio.NewScanner(os.Stdin)

func nextString() string {
	scanner.Scan()
	return scanner.Text()
}

func incrementByte(b byte) byte {
	if b >= 97 && b < 122 {
		return b + 1
	} else if b == 122 {
		return 97
	}
	return b
}

func main() {
	scanner.Split(bufio.ScanLines)

	for {
		line := nextString()
		if len(line) == 0 {
			break
		}
		for i := 0; i <= 26; i++ {
			decoded := []byte{}
			for j := 0; j < len(line); j++ {
				decoded = append(decoded, incrementByte(line[j]))
			}
			line = string(decoded)
			if strings.Contains(line, "the") || strings.Contains(line, "this") || strings.Contains(line, "that") {
				fmt.Println(line)
				break
			}
		}
	}
}

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()
        print()


if __name__ == "__main__":
    main()

Python: while True:
    try:
        words=input()
        
    except:
        break
    for j in range(26):
        word=""
        for i in range(len(words)):
            if 65<=ord(words[i])<=90:
                if ord(words[i])+j>90:
                    word+=chr(ord(word[i])+j-26)
                else:
                    word+=chr(ord(word[i])+j)
            elif 97<=ord(words[i])<=122:
                if ord(words[i])+j>122:
                    word+=chr(ord(words[i])+j-26)
                else:
                    word+=chr(ord(words[i])+j)    
            else:
                word+=words[i]
        if "the" in word or "this" in word or "that" in word:
            print(word)

Python: import sys


def decrypt(c, i):
    """ ????????¶????????? """
    if c.isalpha():
        t = ord(c) - i
        if t < ord('a'):
            t = ord('z') - i + 1
        return chr(t)
    else:
        return c


if __name__ == '__main__':
    # ??????????????\???
    for line in sys.stdin:

        # ?????????????????????
        found = ''  # ?????????????????????
        for i in range(1, 25):
            decrypted = ''.join([decrypt(x, i) for x in line.strip()])
            # print(decrypted)
            if 'the' in decrypted or 'this' in decrypted or 'that' in decrypted:
                found = decrypted
                break

        # ???????????????
        if found:
            print(found)

Python: import sys, string

thelist = ["the", "this", "that"]


def s(ch, n):
    v = ""
    for c in ch:
        if c in string.ascii_lowercase:
            c = chr((ord(c) - ord("a") + int(n)) % 26 + ord("a"))
        v += c
    return v

for line in sys.stdin:
    for i in range(26):
        l = ""
        for j in line:
            l += s(j, i)
        if set(thelist) & set(l.split(" ")):
            break
    print("".join(l))

Python: import sys
import math as mas

li='abcdefghijklmnopqrstuvwxyz'
for t in sys.stdin:
	for i in range(30):
		a=t[:-1].translate(str.maketrans(li,li[i:]+li[:i]))
		if 1+a.find("this") or 1+a.find("that") or 1+a.find("the"):
			print(a)
			break
#for i in sys.stdin:
#	a,b=map(int,i.split())
#	print(gcd(a,b),lcm(a,b))

Python: import string
import sys


def check_exists(word_set, rotate_dict, search):
    for word in word_set:
        rotated_word = ''.join(rotate_dict[s] for s in word)
        if rotated_word == search:
            return True
    return False


for line in sys.stdin:
    s0 = line.strip()
    alphabets = string.ascii_lowercase
    frequency = [t[1] for t in sorted([(s0.count(s), ord(s)) for s in alphabets], reverse=True)]
    freq_chr_offset = (4, 0, 19, 8, 14)
    ss = s0.strip('.').split()
    sl3, sl4 = set(s for s in ss if len(s) == 3), set(s for s in ss if len(s) == 4)

    i, rotate_dict = 0, None
    for order in frequency:
        for offset in freq_chr_offset:
            i = 97 + offset - order
            rotate_dict = {a: b for a, b in zip(alphabets, alphabets[i:] + alphabets[:i])}
            if (check_exists(sl3, rotate_dict, 'the')
                    + check_exists(sl4, rotate_dict, 'this')
                    + check_exists(sl4, rotate_dict, 'that')) > 0:
                break
        else:
            continue
        break

    print(''.join(rotate_dict[s] if s.isalpha() else s for s in s0))

Python: import sys
for b in sys.stdin:
 for i in range(26):
  c=''.join([e,chr((ord(e)-96+i)%26+97)][96<ord(e)<123]for e in b)
  if any(('the'in c,'this'in c,'that'in c)):print(c.strip())

Python: import re

def rot(i,s):
  s0 = 'abcdefghijklmnopqrstuvwxyz'
  sr = s0[i:] + s0[:i]
  s1 = '' 
  for i in range(len(s)):
      if s[i] in s0:
          s1 = s1 + sr[s0.find(s[i])]
      else:
          s1 = s1 + s[i]
  return(s1)

def cae(s):
  for i in range(26):
      ro =rot(i,s)
      if re.search(r'the',ro) or re.search(r'this',ro) or re.search(r'that',ro):
        return(rot(i,s))

if __name__ == "__main__":
    while True:
        try:
            s = input()
            print(cae(s))
        except:
            break

Python: import sys
for b in sys.stdin:
    for i in range(1,26):
        c = ''
        for j in b:
            if(j == 'z'):
                c += ('a')
            elif(str.isalpha(j) == 1):
                c += (chr(ord(j) + 1))
            else:
                c += j
        if 'the' in c or 'this' in c or 'that' in c:
            print(c)
            break
        b = c

Python: import sys
  
def get_shifted_char(shift_count, ch):
    if ord(ch) >= ord('a') and ord(ch) <= ord('z'):
        return chr(((ord(ch)-71-shift_count) %26 + 97))
    else:
        return ch


for enc_text in sys.stdin:
    text_list = list(filter(lambda s:len(s)==3 or len(s)==4,enc_text.strip().split()))

    shift_count = 1

    while(shift_count < 27):
        flg = False
        for text in text_list:
            decoded = ''.join(list(map(lambda c:get_shifted_char(shift_count,c),text)))
            if decoded == "the" or decoded == "this" or decoded == "that":
                flg = True
        if flg:
            break
        shift_count += 1

    print(''.join(list(map(lambda c:get_shifted_char(shift_count,c),enc_text.strip()))))

Python: while True:
    try:
        s = input()
        for i in range(27):
            ans = ""
            for j in range(len(s)):
                ch = s[j]
                if "a" <= ch <= "z":
                    ans += chr((ord(ch) - ord("a") + i)%26 + ord("a"))
                else:
                    ans += ch
            if "this" in ans or "that" in ans or"the" in ans:
                print(ans)
                break
    except:
        break