optimizeK = function(ss) {
var x1 = 0,
y1 = ss[x1],
x2 = ss.length - 1,
y2 = ss[x2],
m = (y2 - y1)/(x2 - x1),
distances = [];
for (var x3 = 0; x3 < ss.length; x3++) {
var y3 = ss[x3],
x = (x3/m + y3 - y2 + x2 * m)/(m + 1/m),
y = (-1/m) * (x - x3) + y3,
distance = Math.sqrt(((x3 - x) ** 2) + ((y3 - y) ** 2));
distances.push(distance);
}
var optimalK = distances.indexOf(Math.max(...distances)) + 2;
return optimalK
}