Kolmogorov Complexity and Applications