  We study the problem of recovering a hidden community of cardinality $K$ from
an $n \times n$ symmetric data matrix $A$, where for distinct indices $i,j$,
$A_{ij} \sim P$ if $i, j$ both belong to the community and $A_{ij} \sim Q$
otherwise, for two known probability distributions $P$ and $Q$ depending on
$n$. If $P={\rm Bern}(p)$ and $Q={\rm Bern}(q)$ with $p>q$, it reduces to the
problem of finding a densely-connected $K$-subgraph planted in a large
Erd\"os-R\'enyi graph; if $P=\mathcal{N}(\mu,1)$ and $Q=\mathcal{N}(0,1)$ with
$\mu>0$, it corresponds to the problem of locating a $K \times K$ principal
submatrix of elevated means in a large Gaussian random matrix. We focus on two
types of asymptotic recovery guarantees as $n \to \infty$: (1) weak recovery:
expected number of classification errors is $o(K)$; (2) exact recovery:
probability of classifying all indices correctly converges to one. Under mild
assumptions on $P$ and $Q$, and allowing the community size to scale
sublinearly with $n$, we derive a set of sufficient conditions and a set of
necessary conditions for recovery, which are asymptotically tight with sharp
constants. The results hold in particular for the Gaussian case, and for the
case of bounded log likelihood ratio, including the Bernoulli case whenever
$\frac{p}{q}$ and $\frac{1-p}{1-q}$ are bounded away from zero and infinity. An
important algorithmic implication is that, whenever exact recovery is
information theoretically possible, any algorithm that provides weak recovery
when the community size is concentrated near $K$ can be upgraded to achieve
exact recovery in linear additional time by a simple voting procedure.
