class Graph { protected: int K; int N; int **M; public: Graph(int K_, int N_); ~Graph(); void kring_1d1_2d3(int s1, int s2, int s3); void kring_1d1_3d3(int s1, int s2, int s3, int s4); }; class Rcvgraph: public Graph { int *packets; int pn; int newp(); int Pn; int mode; int *degree; void rx_g(int *csum); void rx_c(int *csum); void rx_r(int *csum); void rx_d(int *csum); public: Rcvgraph(int K_, int N_); ~Rcvgraph(); void init(); void rx(int *csum); void dinit(); void dset(int q, int w); void setmode(int m) {mode=m;}; int getmode() {return mode;}; }; void subset(int *Set, int N, int n);