You are building a point-of-sale ordering UI. You are given class stubs Item(id, name, price), Menu(lookupById), Order(add, remove, quantities), Display(show), and a callback onUserUpdateSelected(itemId). Part A: Each time onUserUpdateSelected is called, add the item to the current Order, update quantities, and print a receipt string via Display.show(receipt). The receipt must list each line as "<name> x <qty> @ <unitPrice> = <lineTotal>" followed by a subtotal and grand total. Implement the data structures and toString/formatting needed so this works for repeated additions of the same item and multiple distinct items. Part B: Extend the system to support combo discounts. A Combo is defined by (requiredCount k, eligibleItemIds or categories, discountValue with type {amountOff|percentOff}). After each update, find any valid set of non-overlapping combos that can be applied to the current Order and compute the discounted total; you do not need to maximize the discount or number of combos—return any valid application. Output which combos were applied and the final total on the receipt. Describe your data model for combos, the algorithm to pick a valid set (e.g., backtracking or greedy with backtracking fallback), and the time/space complexity. State reasonable assumptions (e.g., unique item IDs, integer quantities, rounding).