This has been answered in serverfault. Here is the relevant excerpt:
total = used + free
shared / buffers / cached: This shows memory usage for specific purposes, these values are included in the value for used.
The second line gives first line values adjusted. It gives the original value for used minus the sum buffers+cached and the original value for free plus the sum buffers+cached, hence its title. These new values are often more meaningful than those of first line.
[End of excerpt]
Focusing on your situation,
- 14813 (used memory) - 262 (buffered) - 883 (cached) = 13668 (used by applications).
In the event an application needs more memory, it can be taken either from free memory or from cached/buffered, so:
- 262 (buffered) + 883 (cached) + 68 (not used at all) = 1213 (available to applications).
The system does not really need 262+883=1145 (not 13GB) for cache and buffers, but since it's there, it takes it (but gives it back if applications need more). Take a look at the Linux ate my RAM! page.
You can also use top (I personally prefer htop) to see the memory status and which applications are taking most RAM.
As an example, here is a screenshot of htop running in my RaspberryPi and the free -h execution:

raspberry ~ # free -h
total used free shared buffers cached
Mem: 183M 178M 5,3M 0B 63M 42M
-/+ buffers/cache: 72M 111M
Swap: 0B 0B 0B