A Lightweight Process is (in Unix and Unix-like) a process that runs in user space over a single kernel thread and shares its address space and resources with other LWPs of the same user process.
A system call is an invocation of kernel functionality from user space. When a user process performs a system call, the call is handled by the LWP associated with the user process/thread and gets blocked while the call is handled down in the kernel (through the kernel thread associated with the LWP) and when the call is solved, the kernel thread and LWP are free again.
That is why the minimum number of LWPs required in a many to many threading model is the amount of concurrent blocking system calls, because blocking system calls and LWPs are 1:1 related (The LWP cannot do any other task when engaged by a blocking system call from the user thread)