Consider the following FUN problem. Given m,s you want to divide m muffins among s students so that everyone gets m/(s) muffins; however, you want to maximize the minimum piece so that nobody gets crumbs. Let f(m,s) be the size of the smallest piece in an optimal procedure.

We study the case where ceil(2m/s)=3 because (1) many of our hardest open problems were of this form until we found this method, (2) we have used the technique to generate muffin-theorems, and (3) we conjecture this can be used to solve the general case. We give (1) an algorithm to find an upper bound for f(m,s) when ceil(2m/s)(and some ways to speed up that algorithm if certain conjectures are true), (2) an algorithm that uses the information from (1) to try to find a lower bound on f(m,s) (a procedure) which matches the upper bound, (3) an algorithm that uses the information from (1) to generate muffin-theorems, and (4) an algorithm that we think works well in practice to find f(m,s) for any m,s.