var swap = function(data, i, j){
var tmp = data[i];
data[i] = data[j];
data[j] = tmp;
};
var shellSort = function(data){
var gap = parseInt(data.length/2);
while(gap>0){
for(var k = 0; k < gap; k++){
for(var i = k + gap; i < data.length; i += gap){
for(var j = i - gap; j >= k; j -= gap){
if(data[j] > data[j+gap])
swap( data, j, j+gap);
else
break;
}
}
}
gap = parseInt(gap/= 2);
}
};// your code goes here
dmFyIHN3YXAgPSBmdW5jdGlvbihkYXRhLCBpLCBqKXsgCiAgICB2YXIgdG1wID0gZGF0YVtpXTsKICAgIGRhdGFbaV0gPSBkYXRhW2pdOwogICAgZGF0YVtqXSA9IHRtcDsKfTsKICAgIAp2YXIgc2hlbGxTb3J0ID0gZnVuY3Rpb24oZGF0YSl7CiAgICB2YXIgZ2FwID0gcGFyc2VJbnQoZGF0YS5sZW5ndGgvMik7CiAgICB3aGlsZShnYXA+MCl7CiAgICAgICAgZm9yKHZhciBrID0gMDsgayA8IGdhcDsgaysrKXsKICAgICAgICAgICAgZm9yKHZhciBpID0gayArIGdhcDsgaSA8IGRhdGEubGVuZ3RoOyBpICs9IGdhcCl7CiAgICAgICAgICAgICAgICBmb3IodmFyIGogPSBpIC0gZ2FwOyBqID49IGs7IGogLT0gZ2FwKXsKICAgICAgICAgICAgICAgICAgICBpZihkYXRhW2pdID4gZGF0YVtqK2dhcF0pCiAgICAgICAgICAgICAgICAgICAgICAgIHN3YXAoIGRhdGEsIGosIGorZ2FwKTsKICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGdhcCA9IHBhcnNlSW50KGdhcC89IDIpOwogICAgfQp9Oy8vIHlvdXIgY29kZSBnb2VzIGhlcmU=