Go: package main

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

var scanner = bufio.NewScanner(os.Stdin)

func cipher(text string, direction int, int_shift int) string {
	shift, offset := rune(int_shift), rune(26)
	runes := []rune(text)
	for index, char := range runes {
		switch direction {
		case 1:
			if char >= 'a' && char <= 'z'-shift || char >= 'A' && char <= 'Z'-shift {
				char = char + shift
			} else if char > 'z'-shift && char <= 'z' || char > 'Z'-shift && char <= 'Z' {
				char = char + shift - offset
			}
		case -1:
			if char >= 'a'+shift && char <= 'z' || char >= 'A'+shift && char <= 'Z' {
				char = char - shift
			} else if char >= 'a' && char < 'a'+shift || char >= 'A' && char < 'A'+shift {
				char = char - shift + offset
			}
		}
		runes[index] = char
	}
	return string(runes)
}

func main() {
	for scanner.Scan() {
		infos := strings.Split(scanner.Text(), " ")
		plain := make([]string, len(infos))
		// fmt.Println(infos)
		Decryption:
			for i := 0; i < 26; i++ {
				for j := range infos {
					plain[j] = cipher(infos[j], 1, i)
				}
				for j := range plain {
					if plain[j] == "this" || plain[j] == "that" || plain[j] == "the" {
						break Decryption
					}
				}
			}
			fmt.Println(strings.Join(plain, " "))
	}
}

Python: t = ord("t")
z = ord("z")
a = ord("a")

def _decode(tv, v):
    spam = ord(v)
    if not (a <= spam <= z):
        return v

    x = t - ord(tv)
    y = spam + x

    if y > z:
        y = a + (y % z)
    elif y < a:
        y = z - (a - y)

    return chr(y)

while 1:
    try:
        txt = input()
        for s in [x for x in txt.split() if len(x) <= 4 and len(x) >= 3]:
            tv = s[0]
            dec_val = ''.join(list(map(lambda x:_decode(tv,x),s)))

            if (dec_val in ('this', 'the', 'that')):
                print(''.join(list(map(lambda x:_decode(tv,x),txt))))
                break
    except:
        break

Python: def caesarshift(sentence):
    abc = "abcdefghijklmnopqrstuvwxyz"
    bcd = abc[1:] + "a"
    return sentence.translate(str.maketrans(abc, bcd))

while True:
    try:
        sentence = input()
    except EOFError:
        break
    while True:
        if "the" in sentence or "this" in sentence or "that" in sentence:
            break
        sentence = caesarshift(sentence)
    print(sentence)

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 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: s = input()[:-1].split()
while True:
    for i in range(26):
        li = []
        for word in s:
            t = ""
            for c in word:
                t += chr( (ord(c) - ord('a') + i) % 26 + ord('a') )
            li.append(t)
        if 'this' in li or 'that' in li or 'the' in li:
            print(" ".join(li) + '.')
            exit()

Python: import string
import sys

example = string.ascii_lowercase

def make(x, y, z, a, b, c = True) :
    if x - a < 0 : y = 26 + (x - a)
    else : y = x - a
    if x - b < 0 : z = 26 + (z - b)
    else : z = x - b
    if c != True :
        if x - c < 0 : n = 26 + (x - c)
        else : n = x - c
    if c != 0 : return (example[x] + example[y] + example[z])
    else : return (example[x] + example[y] + example[z])
    
def solve(temp, number) :
    new_temp = []
    if number > 19 : number = number - 19
    else : number = 19 - number
    for _ in temp :
        if _ == ' ' or _ == '.' : new_temp.append(_)
        elif _ - number < 0 : new_temp.append(26 + (_ - number))
        else : new_temp.append(_ - number)
    temp = ''
    for _ in new_temp :
        if _ == ' ' or _ == '.' : temp += _
        else : temp += example[_]
    return temp

for input_string in sys.stdin :
    test = input_string
    temp = []
    for _ in test : 
        if _ == ' ' or _ == '.' : temp.append(_)
        else : temp.append(example.index(_))

    check = 0
    the = []
    for _ in range(26) : the.append(make(_, _, _, 12, 15))
    for number, _ in enumerate(the) :
        if _ in test :
            print(solve(temp, number))
            check = 1
    
    if check == 1 :
        this = []
        for _ in range(26) : this.append(make(_, _, _, 12, 13, 24))
        for number, _ in enumerate(this) :
            if _ in test :
                print(solve(temp, number))
                check = 1
    
    if check == 1 :
        that = []
        for _ in range(26) : this.append(make(_, _, _, 12, 13, 24))
        for number, _ in enumerate(this) :
            if _ in test : print(solve(temp, number))

Python: s = input()

for i in range(26):
	ss = ""
	for c in s:
		if c == ' ' or c == '.':
			ss += c
			continue
		c = ord(c)
		c = (c-ord('a')+i)%26+ord('a')
		ss += chr(c)
	a = ss.split()
	if "the" in a or "this" in a or "that" in a:
		print(ss)
		break

Python: import sys
a='abcdefghijklmnopqrstuvwxyz'
for b in sys.stdin:
 b=b.strip()
 for i in range(26):
  c=''.join(a[ord(e)-97-i]if e in a else e for e in b)
  if any(('the'in c,'this'in c,'that'in c)):print(c)

Python: def cshift(w):
    r = ""
    for c in w:
        if c == 'z':
            r += 'a'
        else:
            r += chr(ord(c)+1)
    return r
while True:
    try:
        sent = input()
    except EOFError:
        break
    
    words = sent[:-1].split()
    while ("the" not in words) and ("this" not in words) and ("that" not in words):
        for i, w in enumerate(words):
            words[i] = cshift(w)
    print(" ".join(words)+".")

Python: import sys
import string
f = sys.stdin

ceasar1 = str.maketrans(string.ascii_lowercase, string.ascii_lowercase[1:] + string.ascii_lowercase[:1])

for sentence in f:
    for i in range(len(string.ascii_lowercase)):
        sentence = sentence.translate(ceasar1)
        if 'the' in sentence or 'this' in sentence or 'that' in sentence:
            print(sentence, end='')
            break

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 sys
def rp(char,n):
    p=ord(char)+n
    if 97 <= p-n <= 122:
        if p<=122:
            return chr(p)
        elif p>122:
            return chr(p-122+96)
    else:
        return char

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

[print(i) for i in [find(text) for text in sys.stdin] if i]

Python: import sys
a='abcdefghijklmnopqrstuvwxyz'
for b in sys.stdin:
 b=b.strip()
 for i in range(26):
  c=''.join(a[ord(e)-97-i]if e in a else e for e in b)
  if any(('the'in c,'this'in c,'that'in c)):print(c)

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:
    k = line.split(" ")
    for i in range(26):
        li = []
        for j in k:
            li.append(s(j, i))
        if set(thelist) & set(li):
            break
    print(" ".join(li))

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 sys

a = 'abcdefghijklmnopqrstuvwxyz'
for i in sys.stdin.readlines():
    s = i.strip()
    for j in range(1, 26):
        t = s.translate(str.maketrans(a, a[j:] + a[:j]))
        if 'the' in t or 'this' in t or 'that' in t:
            print(t)