1. 

/* Angewandte Mathematik, SS09, IFB 2C
* ACM Problem #10992 (The Ghost of Programmers)
* Link: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=21&page=show_problem&problem=1933
*
* @author Dennis Wilfert
* @author Johann Studt
* @version 1.0, 05/21/2009
*
* Status : Accepted
* Runtime: 0.112
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;

public class Main {

public static void main(String[] args) throws IOException {

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// StringBuilder für die Ausgabe
StringBuilder output = new StringBuilder();
// Zahl als String
String number;
// Zahl als BigInteger
BigInteger big;
// Zahl minus Jahre bis zum ersten Vorkommen
BigInteger bigdiv;
boolean impossible = false;
// Länge des String
int length;
// Letzte Werte des Strings
int last;
// Feststellen ob im aktuellen Jahr bereits ein Geist gekommen ist
boolean ghostcomes;

while(true){

ghostcomes=false;
// Aktueller Wert
big = new BigInteger(reader.readLine());
// Ist der Wert 0, dann beenden
if(big.signum()==0)break;
// Nach jedem Fall eine Leerzeile
if(impossible)output.append("\n");
// Zahl an den output-String anhängen
output.append(big);
output.append("\n");
// Jahre bis zum Jahr des ersten Vorkommens abziehen
bigdiv = big.subtract(BigInteger.valueOf(2148));
// Zahl als String
number = bigdiv.toString();

// Jahr 2148 sind alle Geister erschienen
if(bigdiv.signum()==0){
ghostcomes=true;
output.append("Ghost of Tanveer Ahsan!!!\nGhost of Shahriar Manzoor!!!\nGhost of Adrian Kugel!!!\nGhost of Anton Maydell!!!\nGhost of Derek Kisman!!!\nGhost of Rezaul Alam Chowdhury!!!\nGhost of Jimmy Mardell!!!\nGhost of Monirul Hasan!!!\nGhost of K. M. Iftekhar!!!\n");
}

if(bigdiv.signum()>0){

// Stringlänge
length = number.length();
// Letztes Zeichen des Strings als int
last = Integer.parseInt(number.substring(length-1));


// Ghost of Tanveer Ahsan
if(bigdiv.mod(BigInteger.valueOf(2)).signum()==0){
ghostcomes=true;
output.append("Ghost of Tanveer Ahsan!!!\n");
}

// Ghost of Shahriar Manzoor
// NUr letztes Zeichen Prüfen
if(last == 0 || last == 5){
ghostcomes=true;
output.append("Ghost of Shahriar Manzoor!!!\n");
}

// Ghost of Adrian Kugel
if(bigdiv.mod(BigInteger.valueOf(7)).signum()==0){
ghostcomes=true;
output.append("Ghost of Adrian Kugel!!!\n");
}

// Ghost of Anton Maydell
if(bigdiv.mod(BigInteger.valueOf(11)).signum()==0){
ghostcomes=true;
output.append("Ghost of Anton Maydell!!!\n");
}

// Ghost of Derek Kisman
if(bigdiv.mod(BigInteger.valueOf(15)).signum()==0){
ghostcomes=true;
output.append("Ghost of Derek Kisman!!!\n");
}

// Ghost of Rezaul Alam Chowdhury
// Letzten drei Zeichen durch 20 teilen
if(length>2)
last = Integer.parseInt(number.substring(length-3));
else
last = Integer.parseInt(number);
if(last%20==0){
ghostcomes=true;
output.append("Ghost of Rezaul Alam Chowdhury!!!\n");
}

// Ghost of Jimmy Mardell
if(bigdiv.mod(BigInteger.valueOf(28)).signum()==0){
ghostcomes=true;
output.append("Ghost of Jimmy Mardell!!!\n");
}

// Ghost of Monirul Hasan
if(bigdiv.mod(BigInteger.valueOf(36)).signum()==0){
ghostcomes=true;
output.append("Ghost of Monirul Hasan!!!\n");
}

// Ghost of K. M. Iftekhar
if((big.mod(BigInteger.valueOf(4)).signum()==0 && big.mod(BigInteger.valueOf(100)).signum()!=0) || big.mod(BigInteger.valueOf(400)).signum()==0){
ghostcomes=true;
output.append("Ghost of K. M. Iftekhar!!!\n");
}
}
// Kein Geist ist gekommen
if(!ghostcomes)
output.append("No ghost will come in this year\n");

impossible=true;
}
System.out.print(output);

}

}