Gray stones are a class of items, of which in vanilla NetHack 3/4s are normally interesting, and 2/4 are almost always beneficial. The individual types are not hard to distinguish, but to do so requires some tricks.
Gray stones can be thrown or slung, flint stones may break when you do this (like arrows and some other projectiles), but luckstones, touchstones, and loadstones can be thrown as many times as you want.
A gray stone is one of:
The loadstone can be distinguished by attempting to kick it when it is on the ground; unless your character is very strong, polymorphed into a sasquatch or another very strong monster, or wearing kicking boots, the loadstone will not move and produce a "Thump!" instead. Don't worry about losing the stone -- only flint projectiles can disappear. Alternatively, you can simply curse-test the stone on the ground, either by pet testing or by being a priest. If the stone is noncursed it is safe to pick up, since loadstones auto-curse only when they are dropped. If you pick up a loadstone, #name it so that you'll recognize another one when you see it.
Rubbing an iron item on a touchstone produces its signature "scritch, scritch", which indirectly identifies it. If you rub a gem on a blessed touchstone, both the gem and the touchstone will automatically be identified. Gray stones count as gems in this context.
If you can kick the gray stone and it does not produce the message "scritch, scritch" when an iron item is rubbed on it, you have either a flintstone or a luckstone. A flintstone and a luckstone can be separated by price identification (flint has a base price of 1zm whereas a luckstone has a base price of 60zm), or you can use enlightenment to determine whether you are carrying a luckstone.
If a monster picks it up who isn't carrying a sling, it very likely is not flint, since most monsters only like magic objects.
Once you have distinguished one of the gray stones, you can type-name it to distinguish subsequent gray stones.
Note: This bug has been fixed in 3.6.0.
A somewhat dubious way of distinguishing the difference between flint stones from luckstones is to use the artifact naming trick by attempting to name (not call) them "The Heart of Ahriman". If the stone is a luckstone, your hand will slip as it is not possible to name the base item of an artifact after its artifact.
This behavior is sometimes viewed as cheating and can be frowned upon in some circles as it relies on exploiting a bug. The bug is fixed in 3.6.0 and in many variants and in the NAO version of NetHack.
A user has suggested improving this page or section as follows:
"Do whetstones, healthstones, or lumps of salt break when thrown?"
In SLASH'EM, a cursed gray stone that isn't a loadstone must be a healthstone, unless it came from a bones pile.
In Sporkhack, rubbing a flint stone with a metal object will strike sparks, scaring some monsters, and identifying the stone.
Gray stones can be distinguished by price identification: the base price of a luckstone is 60 zorkmids, a touchstone is 45 zorkmids, and a flint stone or loadstone is 1 zorkmid. In SLASH'EM, a whetstone is priced at 45 zorkmids and a healthstone is 60 zorkmids.