import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.InputStreamReader;

/**
 * Alexandra Mikhaylova mikhaylova@yandex-team.ru
 */
public class G {
    public static class Investigation {
        int n;
        int[] prosecutors;
        int[] protectors;
        int protectorCount;
        int[] claims;

        public Investigation(int[] claims) {
            this.claims = claims;
            n = claims.length;
            prosecutors = new int[n];
            protectors = new int[n];
            protectorCount = 0;
            for (final int claim : claims) {
                if (claim > 0) {
                    prosecutors[claim - 1] ++;
                } else {
                    protectors[-claim - 1] ++;
                    protectorCount ++;
                }
            }
        }

        private int countTruth(final int person) {
            return prosecutors[person] + protectorCount - protectors[person];
        }

        public State[] getStates(final int m) {
            boolean[] suspects = new boolean[n];
            int truthCounter = 0;
            for (int person = 0; person < n; person ++) {
                suspects[person] = (countTruth(person) == m);
                truthCounter += suspects[person] ? 1 : 0;
            }
            State[] result = new State[n];
            for (int person = 0; person < n; person ++) {
                int claimPerson = Math.abs(claims[person]) - 1;
                if (!suspects[claimPerson]) {
                    if (claims[person] < 0) {
                        result[person] = State.TRUTH;
                    } else {
                        result[person] = State.LIE;
                    }
                } else if (truthCounter == 1) {
                    if (claims[person] < 0) {
                        result[person] = State.LIE;
                    } else {
                        result[person] = State.TRUTH;
                    }
                } else {
                    result[person] = State.NOT_DEFINED;
                }
            }
            return result;
        }
    }

    public enum State {             // TODO: good code style ?
        TRUTH("Truth"), LIE("Lie"), NOT_DEFINED("Not defined");
        private String description;
        // constructor for enum members
        private State(String description) {
            this.description = description;
        }
        public String getDescription() {
            return description;
        }
    }

    public static void main(String[] args) throws IOException {
        InputStream input = System.in;
        OutputStream output = System.out;
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));
        PrintWriter writer = new PrintWriter(output);

        State[] states;
        String[] allSuspects = reader.readLine().split(" ");
        int n = Integer.parseInt(allSuspects[0]);
        int m = Integer.parseInt(allSuspects[1]);

        int[] claims = new int[n];
        for (int index = 0; index < n; index ++) {
            claims[index] = Integer.parseInt(reader.readLine());
        }

        Investigation investigation = new Investigation(claims);
        states = investigation.getStates(m);

        for (final State state : states) {
            writer.println(state.getDescription());
        }
    }
}
