This document describes a 3-round MapReduce algorithm for finding small dense subgraphs within a large graph. In Round 1, it computes the graph density by counting edges and nodes. Round 2 partitions the graph and prunes edges with degrees lower than the density. Round 3 iteratively removes the lowest degree node to find the smallest subgraph. The algorithm was tested on real graphs and found optimal solutions with runtimes of minutes or less depending on the graph size and pruning threshold.