typedef int Item;

typedef struct lnode *List;
typedef struct lnode {
  Item value;
  List next; } Listnode;

/*
typedef struct lnode2 {
  Item value;
  List2 next; } Listnode2;
typedef struct lnode2 *List2;
*/


typedef struct lnode3 {
  Item value;
  struct lnode3 *next;
} Listnode3;

typedef struct lnode4 List4;
typedef struct lnode4 {
  Item value;
  List4 *next;
} Listnode4;

typedef struct lnode5 *PList;
typedef struct lnode5 {
  Item value;
  PList next; } Listnode5;


List listnew(Item x)
{
  List p = (List) malloc(sizeof(Listnode));
  p -> value = x;
  p -> next = NULL;
  return p;
}

int main()
{}

