private static void optionF(int neighborN) {
		
		System.out.println("====== f ========");
		System.out.println("option f. find nearest N neighborN");
		ST<Double, String[]> st4 = new ST<Double, String[]>();  //Initialize treemap4 ; maybe should put on top
		//String[] listF = new String[ (neighborN + 1)];  // first item is source itself
		if (theID == -1) theID = (int)(Math.random()*(N+1)); // if user didn't specify the current city
		double lat1 = Double.parseDouble(st.get(theID)[3]);
		System.out.println("s.lat= " + lat1);
		double lon1 = Double.parseDouble(st.get(theID)[4]);
		System.out.println("s.lon= " + lon1);		
		// The calculation of the following takes O(N lgN)
		for (int i=0 ; i < N ; i++){						
			
			double lat2 = Double.parseDouble(st.get(i)[3]);
			double lon2 = Double.parseDouble(st.get(i)[4]);									
			double d = distGPS(lat1, lon1, lat2, lon2);  //d is not the actual distance, just a relative value			
		    st4.put(d, st.get(i)); //copy infor in st or st4.put(d, i)   
		    //listF[i] = d;
		    
		}
		//Arrays.sort(listF);
		
		System.out.println( neighborN + " nearest neighbors are...");		
		for (int i=0 ; i < neighborN ; i++) {    // i = cityID
			
			double minDist = st4.min();			
			System.out.println("*" + st4.get(minDist)[1]);
			st4.delete(minDist);			
			
		}
		
		System.out.println("=================================");
	}