public static void feedC(int level) {
		if(level == g || found == true) {
			return;
		}
		int n = list.size();
		for(int i=0; i<n; i++) {
			int[] oldState = list.get(0);
			list.remove(0);
			int[] used = feedsUsed.get(0);
			feedsUsed.remove(0);
			
			int offset = level;
			if(level >= 1) {
				offset = used[level-1];
			}
			/*
			for(int x=0; x<g-1; x++) {
				System.out.print(used[x] + " ");
			}
			System.out.println(used[g-1]);*/
			//System.out.println("level is " + level);
			
			for(int j=offset; j<g; j++) {
					int[] newState = new int[v];

					for(int k=0; k<v; k++) {
						newState[k] = oldState[k] + feeds[j][k];
					}
					list.add(newState);
					
					int[] newUsed = new int[g];
					for(int k=0; k<level+1; k++) {
						newUsed[k] = used[k];
					}
					newUsed[level] = j+1;
					
					feedsUsed.add(newUsed);
					
					
					if(isFull(newState)) {
						for(int m=0; m<v-1; m++) {
							System.out.print(newState[m] + " ");
						}
						System.out.println(newState[v-1]);
						found = true;
						return;
					}

			}
		}
		level++;
		number++;
		feedC(level);
	}