library("igraph")
M = matrix(0, nrow=5, ncol=5)
M[1,2] = M[2,1] = M[1,3] = M[3,1] = M[2,3] = M[3,2] = 1
M[2,4] = M[4,2] = M[3,5] = M[5,3] = M[4,5] = M[5,4] = 1
M
[,1] [,2] [,3] [,4] [,5]
[1,] 0 1 1 0 0
[2,] 1 0 1 1 0
[3,] 1 1 0 0 1
[4,] 0 1 0 0 1
[5,] 0 0 1 1 0
G <- graph_from_adjacency_matrix(M, mode='undirected')
plot(G, vertex.color=3)

M %*% M
[,1] [,2] [,3] [,4] [,5]
[1,] 2 1 1 1 1
[2,] 1 3 1 0 2
[3,] 1 1 3 2 0
[4,] 1 0 2 2 0
[5,] 1 2 0 0 2
M %*% M %*% M
[,1] [,2] [,3] [,4] [,5]
[1,] 2 4 4 2 2
[2,] 4 2 6 5 1
[3,] 4 6 2 1 5
[4,] 2 5 1 0 4
[5,] 2 1 5 4 0
LS0tDQp0aXRsZTogIlRoZSBBZGphY2VuY3kgTWF0cml4IGluIFIiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCmBgYHtyfQ0KbGlicmFyeSgiaWdyYXBoIikNCk0gPSBtYXRyaXgoMCwgbnJvdz01LCBuY29sPTUpDQpNWzEsMl0gPSBNWzIsMV0gPSBNWzEsM10gPSBNWzMsMV0gPSBNWzIsM10gPSBNWzMsMl0gPSAxDQpNWzIsNF0gPSBNWzQsMl0gPSBNWzMsNV0gPSBNWzUsM10gPSBNWzQsNV0gPSBNWzUsNF0gPSAxDQpNDQpHIDwtIGdyYXBoX2Zyb21fYWRqYWNlbmN5X21hdHJpeChNLCBtb2RlPSd1bmRpcmVjdGVkJykNCnBsb3QoRywgdmVydGV4LmNvbG9yPTMpDQpgYGANCmBgYHtyfQ0KTSAlKiUgTQ0KYGBgDQpgYGB7cn0NCk0gJSolIE0gJSolIE0NCmBgYA0KDQo=