function convertBasedRepr(x, n) {
	var result = []
	
	do {
		var t = x % n
		result.push(t)
		var m = Math.floor(x / n)

		if (m < n) {
			if (m !== 0) {
				result.push(m)
			}
			break
		}
		x = (x - t) /n
	} while(1)

	return result
}

function main(arg) {
	arg = arg.trim().split("\n")
	var h = arg;
	var NK = arg.shift()
	NK = NK.split(" ")
	var N = NK[0]
	var K = Number(NK[1])

	var result_diff = -1

	for (var i = 0; i < 1000; i++) {
		//添字作り
		// var i_list = i.toString(h.length + 1)
		var i_list = convertBasedRepr(i, h.length)
        
        if (i_list.length > K) {
			break;
		}

		// if (i_list.indexOf(0) !== -1) {
		// 	continue;
		// }
// console.log(i_list.length)
		if (i_list.length !== K) {
			continue;
		}

		var tmp = i_list.filter(function (x, n, self) {
            return self.indexOf(x) === n && n !== self.lastIndexOf(x);
        });

		if (tmp.length > 0) {
			continue;
		}

		if (i_list !== i_list.sort()) {
			continue;
		}

		// i_list = i_list.map(e => Number(e))
// console.log(i_list);
		var i_list_max = 0;
		var i_list_min = 0;
		
		for (var j = 0; j < i_list.length; j++) {
			var value = h[i_list[j]]
			if (j === 0) {
				i_list_max = i_list_min = value;
				continue;
			}
			if (value > i_list_max) {
				i_list_max = value;
			}
			if (value < i_list_min) {
				i_list_min = value;
			}
		}

		var tmp_diff = Number(i_list_max) - Number(i_list_min)

		if (result_diff === -1) {
			result_diff = tmp_diff
			continue
		}

		if (result_diff > tmp_diff) {
			result_diff = tmp_diff
		}
		// console.log(i_list.length)
		// console.log([Number(i_list_max) , Number(i_list_min)])
	}
	console.log(result_diff)
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));

