boolean Connected(ArrayList<Integer> a){
		if(a.size() == n) return true;
		int current = a.get(a.size()-1);
	  	for(int i = 0; i < n; i++){
	  		if(i != current && grid[current][i] >= 0){ // look for link
  				if(!a.contains(i)){ // no cycle, recurse
	  				a.add(i);
	  				if(Connected(a)){
	  					return true;
	  				}
	  			}
	  		}
	  	}
	  	return false;
	}