Select mesh faces with naked edges (select mesh border faces)

I am experiencing some difficulties to find a way how to select a “border” which is constructed from mesh faces with naked edges (same as grey “border” shown in the image).

Ideally, I would like to re-organise all mesh faces and split them into two resultant lists - border faces (grey colour) and internal (in white colour) mesh faces. Is it possible to find a solution to implement it with native GH or Python GH components?
Optional question, is it possible to generate two borders (+ 1 level inside)?
I appreciate for your hints, advise and help!
mesh border (21.1 KB)

Like this?

mesh border (30.0 KB)


With native GH components…

mesh border (49.1 KB)


Very much appreciated @HS_Kim. This is exactly what I was looking for!