var chairs = {
	totalNodes: 1,
	nodes: {1:{next: null, prev: null, val: 1}},
	addNextNode: addNextNode,
	removeNode: removeNode
}
 
function removeNode(node){
	node.prev.next = node.next;
	node.next.prev = node.prev;
	this.totalNodes--;
}
function addNextNode(node, num){
    var next = this.nodes[1];
	this.nodes[num] = {
		next: next,
		prev: node,
		val: num
	}
	node.next = this.nodes[num];
	this.nodes[1].prev = this.nodes[num];
	this.totalNodes++;
}
 
var createNodes = function(N){
	var currentNode = chairs.nodes[1];
	for (var i = 2; i <= N; i++){
		chairs.addNextNode(currentNode, i);
		currentNode = currentNode.next;
	}
}
createNodes(11);
 
var deleteChairs = function(){
	var skip = 1;
	var currentNode = chairs.nodes[1];
	while(chairs.totalNodes > 1){
		var newNode = currentNode.next;
		chairs.removeNode(currentNode);
		for(var j = 0; j < skip; j++){
			newNode = newNode.next;
		}
		currentNode = newNode;
		skip++;
	}
	return currentNode.val;
};
 
deleteChairs();