private static void method1(int sum, int count) {
		int id = 0;
		int page = 0;
		ZapposAPI api = new ZapposAPI();
		boolean flag = false;
		List<Product> products = new ArrayList<Product>();
		/* Download product information page by page */
		while (true) {
			try {
				/* download the page */
				List<Product> curpage = api.getPage(++page);
				products.addAll(curpage);
				/* Apply our algorithm */
				System.out.println("Applying our algorithm...");
				DynProg sol = new DynProg(products, sum);
				/* print results */
				flag = false;
				int minSum = sum < 10 ? 1 : (sum-sum/10); /* approximation lower bound */
				for (int i = sum; i >= minSum; i--) {
					List<Subset> combs = sol.nodes[products.size()][i].filterSubsets(count);
					for (Subset s : combs) {
						flag = true;
						float ss = 0;
						System.out.println("\n- Suggestion #" + ++id + ": ");
						for (Product p : s.getElements()) {
							ss += p.getPrice();
							System.out.println("--> "+p.getName()+" ($"+p.getPrice()+")");
						}
						System.out.println("sum: $" + ss);
						System.out.print("Press Enter to continue or Ctrl+C to quit...");
						scanner.nextLine();
					}
					if (curpage.size() == 0) {
						/* done */
						System.out.println("Done.");
						return;
					}
					if (flag == true)
						products = new ArrayList<Product>();
				}
			} catch (Exception e) {
				System.err.println("Error: " + e.getMessage());
				return;
			}
		}
		
	}