eudist <- function(x1,y1,x2,y2) {
	sqrt((x2-x1)^2 + (y2-y1)^2)
}

kNN <- function(X,Data,k) {
	# Define DST vector
	DST <- c(1:length(Data[,1]))
	
	# Compute distance with all points
	for (i in 1:length(Data[,1])) {
		DST[i] <- eudist(X[1],X[2],Data[i,1],Data[i,2])
	}
	sortedOrder <- order(DST)
	rankedLabels <- Data[sortedOrder,3]
	# choose k labels
	kLabels <- rankedLabels[1:k]
 	labels <- unique(kLabels)
 	
 	# Initializing the count vector
 	Count <- c(1:length(labels))
 	ind = 0
 	for (l in labels) {
 		ind<-ind+1
 		subset <- kLabels[kLabels==l]
 		Count[ind]<-length(subset)
 	}
 	
 	orderCount <- order(Count,decreasing=TRUE)
	# the label
	labels[orderCount[1]]
}