public long findAnswer() {
		long answer = 0;
		long c0 = 1020304050607080900L;
		for (int d1 = 0; d1 < 10; ++d1) {
			long c1 = c0 + d1 * 100000000000000000L;
			for (int d2 = 0; d2 < 10; ++d2) {
				long c2 = c1 + d2 * 1000000000000000L;
				for (int d3 = 0; d3 < 10; ++d3) {
					long c3 = c2 + d3 * 10000000000000L;
					for (int d4 = 0; d4 < 10; ++d4) {
						long c4 = c3 + d4 * 100000000000L;
						for (int d5 = 0; d5 < 10; ++d5) {
							long c5 = c4 + d5 * 1000000000L;
							for (int d6 = 0; d6 < 10; ++d6) {
								long c6 = c5 + d6 * 10000000L;
								for (int d7 = 0; d7 < 10; ++d7) {
									long c7 = c6 + d7 * 100000L;
									for (int d8 = 0; d8 < 10; ++d8) {
										long c8 = c7 + d8 * 1000L;
										if (check(c8)) {
											answer = (long) Math.sqrt(c8);
											return answer;
										}
									}
								}
							}
						}
					}
				}
			}
		}

		return answer;
	}