private void findStartTime() {
		// at the beginning maximum is 0
		minStartTime = 0;

		// go through all files with BGP updates
		for (int i = 0; i < inputUpdatesFilenames.size(); i++) {
			try {
				FileReader fr = new FileReader(inputUpdatesFilenames.get(i));
				BufferedReader br = new BufferedReader(fr);

				// read first line
				String str = br.readLine();

				if (str == null) { // if file with updates is empty
					br.close();
					fr.close();
					continue;
				}

				// check if message is ok
				if (str.indexOf("|") != 6) {
					logger.fatal("Unexpected update message found! Filename: "
							+ inputUpdatesFilenames.get(i));
				}

				str = str.substring(str.indexOf("|") + 1);

				// check if time is correct
				if (str.indexOf("|") != 10) {
					logger.fatal("Unexpected time length in update message found! Filename: "
							+ inputUpdatesFilenames.get(i));
				}

				// parse time
				int time = Integer.parseInt(str.substring(0, str.indexOf("|")));

				// refresh maximum
				if (time > minStartTime) {
					minStartTime = time;
				}

				br.close();
				fr.close();

			} catch (FileNotFoundException e) {
				logger.fatal(
						"FileNotFound exception during reading files with updates during determining max start time",
						e);
			} catch (IOException e) {
				logger.fatal(
						"IO exception during reading files with updates during determining max start time",
						e);
			}
		}
	}