import java.io.*;

public class Tail {
	private static final int MAX_LINE_LENGTH = 1000;
	private static final long SLEEP_TIME = 500; // 500 m sec
	private static int numOfLine = 10;
	private static boolean fOption = false;
	private static String fileName = null;
	private static InputStream targetStream = System.in;

	public static void main(String[] args) throws Exception {
		for (String s: args) {
			if ("-help".equals(s)) {
				System.err.println("Usage> java Tail [-f] [-<num>] [filename]");
				return;
			}
			else if ("-f".equals(s))
				fOption = true;
			else if (s.startsWith("-"))
				numOfLine = -Integer.parseInt(s);
			else
				fileName = s;
		}
		
		if (fileName != null) {
			File target = new File(fileName);
			long len = target.length();
			targetStream = new FileInputStream(target);
			len -= MAX_LINE_LENGTH * numOfLine;
			if (len > 0)
				targetStream.skip(len);
		}
		BufferedReader br = new BufferedReader(new InputStreamReader(targetStream));
		String line;
		String[] lines = new String[numOfLine];
		int ip = 0;
		while ((line = br.readLine()) != null) {
			lines[ip] = line;
			if (++ip >= numOfLine)
				ip = 0;
		}
		int i = ip;
		do {
			if (lines[i] != null)
				System.out.println(lines[i]);
			if (++i >= numOfLine)
				i = 0;
		} while (i != ip);
		if (fOption && fileName != null) {
			while (true) {
				Thread.sleep(SLEEP_TIME);
				line = br.readLine();
				if (line != null)
					System.out.println(line);
			}
		}
	}
}